Skip to content

Commit 5cd7950

Browse files
committed
feat: feature RenderWith
1 parent 9731294 commit 5cd7950

File tree

3 files changed

+17
-18
lines changed

3 files changed

+17
-18
lines changed

packages/frender/Cargo.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,14 @@ default = [
5555
"html-components",
5656
"either",
5757
"hooks",
58-
# "RenderWith",
59-
# "Elements",
6058
"ToElement",
6159
"context",
6260
"SyncedCollection",
6361
"KeyedElements",
6462
"Memo",
6563
]
6664
nightly = ["frender-render-with?/nightly"]
67-
html = ["csr"]
65+
html = ["csr"] # TODO: remove
6866
html-components = ["html", "frender-html/components"]
6967
either = [
7068
"dep:either",

packages/frender/src/lib.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,7 @@ pub use event::*;
5252
pub use frender_events::event;
5353

5454
#[cfg(feature = "RenderWith")]
55-
pub use frender_render_with::{
56-
CsrRenderContext, DefaultAnyRenderState, FnOnceRenderWithContext, IntoFnOnceRenderWithContext,
57-
RenderWith, Rendered,
58-
};
55+
pub use frender_render_with::{self as render_with, RenderWith};
5956

6057
#[cfg(feature = "KeyedElements")]
6158
pub use frender_keyed_elements::{Keyed, KeyedElements};

packages/frender/tests/render_with.rs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
1+
#![cfg(feature = "RenderWith")]
2+
#![cfg(feature = "hooks")]
13
#![allow(dead_code)] // TODO: add tests
24

35
use std::cell::RefCell;
46

5-
use frender::prelude::*;
6-
use frender_common::TempStr;
77
use hooks::ShareValue;
88

9-
use frender::{FnOnceRenderWithContext, IntoFnOnceRenderWithContext};
9+
use frender::html::RenderHtml;
10+
use frender::prelude::*;
11+
use frender::render_with::{FnOnceRenderWithContext, IntoFnOnceRenderWithContext};
12+
13+
use frender_common::TempStr; // TODO: export in frender
1014

1115
struct Test {
1216
numbers: Vec<i32>,
1317
}
1418

1519
impl IntoFnOnceRenderWithContext for Test {
16-
fn into_fn_once_render_with_context<Ctx: ?Sized + frender_html::HtmlRenderContext>(
20+
fn into_fn_once_render_with_context<Renderer: ?Sized + RenderHtml>(
1721
self,
18-
) -> impl FnOnceRenderWithContext<Ctx> {
22+
) -> impl FnOnceRenderWithContext<Renderer> {
1923
move |ctx| {
2024
ctx.render((
2125
cs::button()
@@ -30,18 +34,18 @@ impl IntoFnOnceRenderWithContext for Test {
3034
struct TestShareValue<S: ShareValue<Value = String>>(S);
3135

3236
impl<S: ShareValue<Value = String>> IntoFnOnceRenderWithContext for TestShareValue<S> {
33-
fn into_fn_once_render_with_context<Ctx: ?Sized + frender_html::HtmlRenderContext>(
37+
fn into_fn_once_render_with_context<Renderer: ?Sized + RenderHtml>(
3438
self,
35-
) -> impl FnOnceRenderWithContext<Ctx> {
39+
) -> impl FnOnceRenderWithContext<Renderer> {
3640
move |ctx| self.0.map(|s| ctx.render(TempStr(s.as_str())))
3741
}
3842
}
3943

4044
struct TestRcRefCellElements(std::rc::Rc<RefCell<Vec<i32>>>);
4145
impl IntoFnOnceRenderWithContext for TestRcRefCellElements {
42-
fn into_fn_once_render_with_context<Ctx: ?Sized + frender_html::HtmlRenderContext>(
46+
fn into_fn_once_render_with_context<Renderer: ?Sized + RenderHtml>(
4347
self,
44-
) -> impl FnOnceRenderWithContext<Ctx> {
48+
) -> impl FnOnceRenderWithContext<Renderer> {
4549
move |ctx| {
4650
let numbers = self.0.borrow();
4751

@@ -53,9 +57,9 @@ impl IntoFnOnceRenderWithContext for TestRcRefCellElements {
5357
struct TestShareElements<S: ShareValue<Value = Vec<i32>>>(S);
5458

5559
impl<S: ShareValue<Value = Vec<i32>>> IntoFnOnceRenderWithContext for TestShareElements<S> {
56-
fn into_fn_once_render_with_context<Ctx: ?Sized + frender_html::HtmlRenderContext>(
60+
fn into_fn_once_render_with_context<Renderer: ?Sized + RenderHtml>(
5761
self,
58-
) -> impl FnOnceRenderWithContext<Ctx> {
62+
) -> impl FnOnceRenderWithContext<Renderer> {
5963
move |ctx| {
6064
self.0
6165
.map(|numbers| ctx.render(KeyedElements(numbers.iter().map(|n| Keyed(*n, *n)))))

0 commit comments

Comments
 (0)