diff --git a/examples/PWA-example/src/main.rs b/examples/PWA-example/src/main.rs index 168929d6a..751834b39 100644 --- a/examples/PWA-example/src/main.rs +++ b/examples/PWA-example/src/main.rs @@ -9,7 +9,7 @@ fn main() { } fn app() -> Element { - render! ( + rsx! ( div { style: "text-align: center;", h1 { "🌗 Dioxus 🚀" } h3 { "Frontend that scales." } diff --git a/examples/all_css.rs b/examples/all_css.rs index e92c0b76e..a2529aeba 100644 --- a/examples/all_css.rs +++ b/examples/all_css.rs @@ -5,7 +5,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { align_content: "a", align_items: "a", diff --git a/examples/all_events.rs b/examples/all_events.rs index 23e81f662..dd156c64d 100644 --- a/examples/all_events.rs +++ b/examples/all_events.rs @@ -52,7 +52,7 @@ fn app() -> Element { events.push_back(event); }; - render! { + rsx! { div { style: "{CONTAINER_STYLE}", div { style: "{RECT_STYLE}", diff --git a/examples/calculator.rs b/examples/calculator.rs index 496871770..8aa35ab11 100644 --- a/examples/calculator.rs +++ b/examples/calculator.rs @@ -57,7 +57,7 @@ fn app() -> Element { _ => {} }; - render! { + rsx! { style { {include_str!("./assets/calculator.css")} } div { id: "wrapper", div { class: "app", diff --git a/examples/clock.rs b/examples/clock.rs index 20627fd0d..99e872811 100644 --- a/examples/clock.rs +++ b/examples/clock.rs @@ -16,7 +16,7 @@ fn app() -> Element { } }); - render! { + rsx! { div { "High-Five counter: {count}" } } } diff --git a/examples/compose.rs b/examples/compose.rs index 0ebc57f2b..30e9e19aa 100644 --- a/examples/compose.rs +++ b/examples/compose.rs @@ -27,7 +27,7 @@ fn app() -> Element { ); }; - render! { + rsx! { h1 { "This is your email" } button { onclick: open_compose_window, "Click to compose a new email" } ul { @@ -44,7 +44,7 @@ fn app() -> Element { fn compose(send: Rc) -> Element { let mut user_input = use_signal(String::new); - render! { + rsx! { div { h1 { "Compose a new email" } diff --git a/examples/control_focus.rs b/examples/control_focus.rs index bd1cd79c1..0310f2cc7 100644 --- a/examples/control_focus.rs +++ b/examples/control_focus.rs @@ -25,7 +25,7 @@ fn app() -> Element { } }); - render! { + rsx! { div { h1 { "Input Roulette" } for i in 0..100 { diff --git a/examples/counter.rs b/examples/counter.rs index c2388d168..6a3e1a8ae 100644 --- a/examples/counter.rs +++ b/examples/counter.rs @@ -11,7 +11,7 @@ fn app() -> Element { let mut counters = use_signal(|| vec![0, 0, 0]); let mut sum = use_selector(move || counters.read().iter().copied().sum::()); - render! { + rsx! { div { button { onclick: move |_| counters.write().push(0), "Add counter" } button { onclick: move |_| { counters.write().pop(); }, "Remove counter" } diff --git a/examples/crm.rs b/examples/crm.rs index 47935bed2..c09e51294 100644 --- a/examples/crm.rs +++ b/examples/crm.rs @@ -14,7 +14,7 @@ type Clients = Signal>; fn app() -> Element { use_context_provider::(|| Signal::new(vec![])); - render! { + rsx! { link { rel: "stylesheet", href: "https://unpkg.com/purecss@2.0.6/build/pure-min.css", @@ -60,7 +60,7 @@ pub struct Client { fn ClientList() -> Element { let mut clients = use_context::(); - render! { + rsx! { h2 { "List of Clients" } Link { to: Route::ClientAdd {}, class: "pure-button pure-button-primary", "Add Client" } Link { to: Route::Settings {}, class: "pure-button", "Settings" } @@ -88,7 +88,7 @@ fn ClientAdd() -> Element { dioxus_router::router().push(Route::ClientList {}); }; - render! { + rsx! { h2 { "Add new Client" } form { class: "pure-form pure-form-aligned", onsubmit: submit_client, @@ -138,7 +138,7 @@ fn ClientAdd() -> Element { #[component] fn Settings() -> Element { - render! { + rsx! { h2 { "Settings" } button { diff --git a/examples/custom_assets.rs b/examples/custom_assets.rs index 8c98c41c3..f449ef6fe 100644 --- a/examples/custom_assets.rs +++ b/examples/custom_assets.rs @@ -5,7 +5,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { p { "This should show an image:" diff --git a/examples/custom_html.rs b/examples/custom_html.rs index 38b96ecaf..dc9320a6d 100644 --- a/examples/custom_html.rs +++ b/examples/custom_html.rs @@ -30,7 +30,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { h1 { "hello world!" } } } } diff --git a/examples/disabled.rs b/examples/disabled.rs index d542ff0f2..fffa828b4 100644 --- a/examples/disabled.rs +++ b/examples/disabled.rs @@ -7,7 +7,7 @@ fn main() { fn app() -> Element { let mut disabled = use_signal(|| false); - render! { + rsx! { div { button { onclick: move |_| disabled.toggle(), "click to " diff --git a/examples/dog_app.rs b/examples/dog_app.rs index 9f991a7ca..035628372 100644 --- a/examples/dog_app.rs +++ b/examples/dog_app.rs @@ -15,10 +15,10 @@ fn app() -> Element { .await; let Ok(breeds) = list else { - return render! { "error fetching breeds" }; + return rsx! { "error fetching breeds" }; }; - render! { + rsx! { for cur_breed in breeds.message.keys().take(10).cloned() { li { key: "{cur_breed}", button { onclick: move |_| breed.set(cur_breed.clone()), @@ -30,10 +30,10 @@ fn app() -> Element { }); let Some(breed_list) = breed_list.value().cloned() else { - return render! { "loading breeds..." }; + return rsx! { "loading breeds..." }; }; - render! { + rsx! { h1 { "Select a dog breed!" } div { height: "500px", display: "flex", ul { flex: "50%", {breed_list} } @@ -53,13 +53,13 @@ fn BreedPic(breed: Signal) -> Element { }); match fut.value().read().as_ref() { - Some(Ok(resp)) => render! { + Some(Ok(resp)) => rsx! { div { button { onclick: move |_| fut.restart(), "Click to fetch another doggo" } img { max_width: "500px", max_height: "500px", src: "{resp.message}" } } }, - _ => render! { "loading image..." }, + _ => rsx! { "loading image..." }, } } diff --git a/examples/dynamic_asset.rs b/examples/dynamic_asset.rs index 71c433609..6ad5e9a3a 100644 --- a/examples/dynamic_asset.rs +++ b/examples/dynamic_asset.rs @@ -17,7 +17,7 @@ fn app() -> Element { response.respond(Response::new(include_bytes!("./assets/logo.png").to_vec())); }); - render! { + rsx! { div { img { src: "/logos/logo.png" } } diff --git a/examples/error_handle.rs b/examples/error_handle.rs index 2fc899115..02410629c 100644 --- a/examples/error_handle.rs +++ b/examples/error_handle.rs @@ -5,9 +5,9 @@ fn main() { } fn app() -> Element { - render! { + rsx! { ErrorBoundary { - handle_error: |error: CapturedError| render! {"Found error {error}"}, + handle_error: |error: CapturedError| rsx! {"Found error {error}"}, DemoC { x: 1 } } } @@ -19,7 +19,7 @@ fn DemoC(x: i32) -> Element { result.throw()?; - render! { + rsx! { h1 { "{x}" } } } diff --git a/examples/eval.rs b/examples/eval.rs index 3abd1a156..51207be1c 100644 --- a/examples/eval.rs +++ b/examples/eval.rs @@ -23,7 +23,7 @@ fn app() -> Element { }); match future.value().read().as_ref() { - Some(v) => render!( p { "{v}" } ), - _ => render!( p { "waiting.." } ), + Some(v) => rsx!( p { "{v}" } ), + _ => rsx!( p { "waiting.." } ), } } diff --git a/examples/file_explorer.rs b/examples/file_explorer.rs index 18ed4684c..c711261b2 100644 --- a/examples/file_explorer.rs +++ b/examples/file_explorer.rs @@ -22,7 +22,7 @@ const _STYLE: &str = manganis::mg!(file("./examples/assets/fileexplorer.css")); fn app() -> Element { let mut files = use_signal(Files::new); - render! { + rsx! { div { link { href:"https://fonts.googleapis.com/icon?family=Material+Icons", rel:"stylesheet" } header { @@ -34,7 +34,7 @@ fn app() -> Element { main { {files.read().path_names.iter().enumerate().map(|(dir_id, path)| { let path_end = path.split('/').last().unwrap_or(path.as_str()); - render! ( + rsx! ( div { class: "folder", key: "{path}", diff --git a/examples/file_upload.rs b/examples/file_upload.rs index dad2d0be4..6c48b6b41 100644 --- a/examples/file_upload.rs +++ b/examples/file_upload.rs @@ -30,7 +30,7 @@ fn App() -> Element { } }; - render! { + rsx! { label { input { r#type: "checkbox", diff --git a/examples/filedragdrop.rs b/examples/filedragdrop.rs index 1587f4f7b..ad6556ab1 100644 --- a/examples/filedragdrop.rs +++ b/examples/filedragdrop.rs @@ -11,7 +11,7 @@ fn main() { } fn app() -> Element { - render!( + rsx!( div { h1 { "drag a file here and check your console" } } ) } diff --git a/examples/flat_router.rs b/examples/flat_router.rs index 0e2858afc..3db802bfe 100644 --- a/examples/flat_router.rs +++ b/examples/flat_router.rs @@ -32,7 +32,7 @@ enum Route { #[component] fn Footer() -> Element { - render! { + rsx! { div { Outlet:: {} @@ -60,20 +60,20 @@ fn Footer() -> Element { #[component] fn Home() -> Element { - render!("Home") + rsx!("Home") } #[component] fn Games() -> Element { - render!("Games") + rsx!("Games") } #[component] fn Play() -> Element { - render!("Play") + rsx!("Play") } #[component] fn Settings() -> Element { - render!("Settings") + rsx!("Settings") } diff --git a/examples/form.rs b/examples/form.rs index f367245aa..897587daa 100644 --- a/examples/form.rs +++ b/examples/form.rs @@ -10,7 +10,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { h1 { "Form" } form { diff --git a/examples/generic_component.rs b/examples/generic_component.rs index 8d6f33acd..06513aa02 100644 --- a/examples/generic_component.rs +++ b/examples/generic_component.rs @@ -7,7 +7,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { generic_child { data: 0 } } } @@ -18,7 +18,7 @@ struct GenericChildProps { } fn generic_child(props: GenericChildProps) -> Element { - render! { + rsx! { div { "{props.data}" } } } diff --git a/examples/hello_world.rs b/examples/hello_world.rs index 8b89cd865..71861b576 100644 --- a/examples/hello_world.rs +++ b/examples/hello_world.rs @@ -5,7 +5,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { "Hello, world!" } } } diff --git a/examples/hydration.rs b/examples/hydration.rs index af328a842..fb6ec5cae 100644 --- a/examples/hydration.rs +++ b/examples/hydration.rs @@ -27,7 +27,7 @@ fn main() { fn app() -> Element { let mut val = use_signal(|| 0); - render! { + rsx! { div { h1 { "hello world. Count: {val}" } button { onclick: move |_| val += 1, "click to increment" } diff --git a/examples/inputs.rs b/examples/inputs.rs index 36f1039fd..e9d417578 100644 --- a/examples/inputs.rs +++ b/examples/inputs.rs @@ -35,7 +35,7 @@ const FIELDS: &[(&str, &str)] = &[ ]; fn app() -> Element { - render! { + rsx! { div { margin_left: "30px", {select_example()}, div { @@ -137,7 +137,7 @@ fn app() -> Element { } fn select_example() -> Element { - render! { + rsx! { div { select { id: "selection", diff --git a/examples/link.rs b/examples/link.rs index 37ce804c4..9eb8a1e92 100644 --- a/examples/link.rs +++ b/examples/link.rs @@ -7,7 +7,7 @@ fn main() { #[component] fn App() -> Element { - render! ( + rsx! ( div { p { a { href: "http://dioxuslabs.com/", "Default link - links outside of your app" } } p { @@ -35,7 +35,7 @@ enum Route { #[component] fn Header() -> Element { - render! { + rsx! { h1 { "Your app here" } ul { li { @@ -51,10 +51,10 @@ fn Header() -> Element { #[component] fn Home() -> Element { - render!( h1 { "Home" } ) + rsx!( h1 { "Home" } ) } #[component] fn Settings() -> Element { - render!( h1 { "Settings" } ) + rsx!( h1 { "Settings" } ) } diff --git a/examples/login_form.rs b/examples/login_form.rs index 8bab70ab6..220472886 100644 --- a/examples/login_form.rs +++ b/examples/login_form.rs @@ -29,7 +29,7 @@ fn app() -> Element { } }; - render! { + rsx! { h1 { "Login" } form { onsubmit, input { r#type: "text", id: "username", name: "username" } diff --git a/examples/mobile_demo/src/lib.rs b/examples/mobile_demo/src/lib.rs index f29d94db1..a18f85f03 100644 --- a/examples/mobile_demo/src/lib.rs +++ b/examples/mobile_demo/src/lib.rs @@ -63,7 +63,7 @@ fn app() -> Element { log::debug!("Hello from the app"); - render! { + rsx! { div { h1 { "Hello, Mobile" } div { diff --git a/examples/multiwindow.rs b/examples/multiwindow.rs index 7ac9ae829..3f86d36aa 100644 --- a/examples/multiwindow.rs +++ b/examples/multiwindow.rs @@ -5,7 +5,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { button { onclick: move |_| { @@ -19,7 +19,7 @@ fn app() -> Element { } fn popup() -> Element { - render! { + rsx! { div { "This is a popup!" } } } diff --git a/examples/nested_listeners.rs b/examples/nested_listeners.rs index ba0030974..201bf3645 100644 --- a/examples/nested_listeners.rs +++ b/examples/nested_listeners.rs @@ -11,7 +11,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { onclick: move |_| println!("clicked! top"), "- div" diff --git a/examples/openid_connect_demo/src/main.rs b/examples/openid_connect_demo/src/main.rs index 10d65824f..5b6754e65 100644 --- a/examples/openid_connect_demo/src/main.rs +++ b/examples/openid_connect_demo/src/main.rs @@ -49,7 +49,7 @@ fn App() -> Element { if fermi_auth_request.read().is_none() { *fermi_auth_request.write() = Some(stored_auth_request); } - render! { Router:: {} } + rsx! { Router:: {} } } fn main() { diff --git a/examples/openid_connect_demo/src/views/header.rs b/examples/openid_connect_demo/src/views/header.rs index eb6174a80..4de6edc22 100644 --- a/examples/openid_connect_demo/src/views/header.rs +++ b/examples/openid_connect_demo/src/views/header.rs @@ -24,7 +24,7 @@ pub fn LogOut(cx: Scope) -> Element { Some(log_out_url_result) => match log_out_url_result { Some(uri) => match uri { Ok(uri) => { - render! { + rsx! { Link { onclick: move |_| { { @@ -40,11 +40,11 @@ pub fn LogOut(cx: Scope) -> Element { } } Err(error) => { - render! { div { "Failed to load disconnection url: {error:?}" } } + rsx! { div { "Failed to load disconnection url: {error:?}" } } } }, None => { - render! { div { "Loading... Please wait" } } + rsx! { div { "Loading... Please wait" } } } }, None => { @@ -59,15 +59,15 @@ pub fn LogOut(cx: Scope) -> Element { }) }; logout_url_task(); - render! { div { "Loading log out url... Please wait" } } + rsx! { div { "Loading log out url... Please wait" } } } }, None => { - render! {{}} + rsx! {{}} } }, None => { - render! {{}} + rsx! {{}} } }) } @@ -113,14 +113,14 @@ pub fn RefreshToken(cx: Scope) -> Element { }) }; exchange_refresh_token_spawn(); - render! { div { "Refreshing session, please wait" } } + rsx! { div { "Refreshing session, please wait" } } } None => { - render! { div { "Id token expired and no refresh token found" } } + rsx! { div { "Id token expired and no refresh token found" } } } }, None => { - render! {{}} + rsx! {{}} } }) } @@ -135,21 +135,21 @@ pub fn LoadClient() -> Element { *fermi_client.write() = ClientState { oidc_client: Some(ClientProps::new(client_id.clone(), client.clone())), }; - render! { + rsx! { div { "Client successfully loaded" } Outlet:: {} } } Err(error) => { log::info! {"Failed to load client: {:?}", error}; - render! { + rsx! { div { "Failed to load client: {error:?}" } Outlet:: {} } } }, None => { - render! { + rsx! { div { div { "Loading client, please wait" } Outlet:: {} @@ -180,7 +180,7 @@ pub fn AuthHeader() -> Element { auth_request.nonce.clone(), ) { Ok(email) => { - render! { + rsx! { div { div { {email} } LogOut { client_id: client_props.client_id, client: client_props.client } @@ -193,7 +193,7 @@ pub fn AuthHeader() -> Element { // Id token failed to be decoded because it expired, we refresh it openidconnect::ClaimsVerificationError::Expired(_message) => { log::info!("Token expired"); - render! { + rsx! { div { RefreshToken { client_id: client_props.client_id, client: client_props.client } Outlet:: {} @@ -203,7 +203,7 @@ pub fn AuthHeader() -> Element { // Other issue with token decoding _ => { log::info!("Other issue with token"); - render! { + rsx! { div { div { "{error}" } Outlet:: {} @@ -215,7 +215,7 @@ pub fn AuthHeader() -> Element { } // User is not logged in None => { - render! { + rsx! { div { Link { to: auth_request.authorize_url.clone(), "Log in" } Outlet:: {} @@ -232,17 +232,17 @@ pub fn AuthHeader() -> Element { auth_request: Some(auth_request), }), ); - render! { div { "Loading nonce" } } + rsx! { div { "Loading nonce" } } } } } // Client is not initialized yet, we need it for everything (None, _, _) => { - render! { LoadClient {} } + rsx! { LoadClient {} } } // We need everything loaded before doing anything (_client, _auth_request, _auth_token) => { - render! {{}} + rsx! {{}} } }) } diff --git a/examples/openid_connect_demo/src/views/home.rs b/examples/openid_connect_demo/src/views/home.rs index 4a2d046d7..d91b5c203 100644 --- a/examples/openid_connect_demo/src/views/home.rs +++ b/examples/openid_connect_demo/src/views/home.rs @@ -1,5 +1,5 @@ use dioxus::prelude::*; pub fn Home() -> Element { - render! { div { "Hello world" } } + rsx! { div { "Hello world" } } } diff --git a/examples/openid_connect_demo/src/views/login.rs b/examples/openid_connect_demo/src/views/login.rs index a79c012b0..b3b611558 100644 --- a/examples/openid_connect_demo/src/views/login.rs +++ b/examples/openid_connect_demo/src/views/login.rs @@ -21,14 +21,14 @@ pub fn Login(query_string: String) -> Element { (Some(client_props), Some(auth_token_read)) => { match (auth_token_read.id_token, auth_token_read.refresh_token) { (Some(_id_token), Some(_refresh_token)) => { - render! { + rsx! { div { "Sign in successful" } Link { to: home_url, "Go back home" } } } // If the refresh token is set but not the id_token, there was an error, we just go back home and reset their value (None, Some(_)) | (Some(_), None) => { - render! { + rsx! { div { "Error while attempting to log in" } Link { to: home_url, @@ -70,17 +70,17 @@ pub fn Login(query_string: String) -> Element { }) }; token_response_spawn(); - render!{ div {} } + rsx!{ div {} } } None => { - render! { div { "No code provided" } } + rsx! { div { "No code provided" } } } } } } } (_, _) => { - render! {{}} + rsx! {{}} } }) } diff --git a/examples/openid_connect_demo/src/views/not_found.rs b/examples/openid_connect_demo/src/views/not_found.rs index 668e7c050..833c61067 100644 --- a/examples/openid_connect_demo/src/views/not_found.rs +++ b/examples/openid_connect_demo/src/views/not_found.rs @@ -2,7 +2,7 @@ use dioxus::prelude::*; #[component] pub fn NotFound(route: Vec) -> Element { - render! { + rsx! { div{ {route.join("")} } diff --git a/examples/optional_props.rs b/examples/optional_props.rs index 9d8664161..ad7edfdb3 100644 --- a/examples/optional_props.rs +++ b/examples/optional_props.rs @@ -11,7 +11,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { Button { a: "asd".to_string(), c: "asd".to_string(), @@ -52,7 +52,7 @@ struct ButtonProps { } fn Button(props: ButtonProps) -> Element { - render! { + rsx! { button { "{props.a} | " "{props.b:?} | " diff --git a/examples/overlay.rs b/examples/overlay.rs index 8189bed2c..9aa1ac2f8 100644 --- a/examples/overlay.rs +++ b/examples/overlay.rs @@ -6,7 +6,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { width: "100%", height: "100%", diff --git a/examples/pattern_model.rs b/examples/pattern_model.rs index 27233c9f8..aaec56ca9 100644 --- a/examples/pattern_model.rs +++ b/examples/pattern_model.rs @@ -40,7 +40,7 @@ const STYLE: &str = include_str!("./assets/calculator.css"); fn app() -> Element { let mut state = use_signal(Calculator::new); - render! { + rsx! { style { {STYLE} } div { id: "wrapper", div { class: "app", @@ -98,7 +98,7 @@ fn app() -> Element { #[component] fn CalculatorKey(name: String, onclick: EventHandler, children: Element) -> Element { - render! { + rsx! { button { class: "calculator-key {name}", onclick: move |e| onclick.call(e), {&children} } } } diff --git a/examples/pattern_reducer.rs b/examples/pattern_reducer.rs index 6824f5f3c..ba931ed3c 100644 --- a/examples/pattern_reducer.rs +++ b/examples/pattern_reducer.rs @@ -14,7 +14,7 @@ fn main() { fn app() -> Element { let mut state = use_signal(|| PlayerState { is_playing: false }); - render!( + rsx!( div { h1 {"Select an option"} h3 { "The radio is... ", {state.read().is_playing()}, "!" } diff --git a/examples/query_segments_demo/src/main.rs b/examples/query_segments_demo/src/main.rs index 015e78b6f..618c7acf2 100644 --- a/examples/query_segments_demo/src/main.rs +++ b/examples/query_segments_demo/src/main.rs @@ -64,7 +64,7 @@ impl FromQuery for ManualBlogQuerySegments { #[component] fn BlogPost(query_params: ManualBlogQuerySegments) -> Element { - render! { + rsx! { div{"This is your blogpost with a query segment:"} div{ "{query_params:?}" } } @@ -72,7 +72,7 @@ fn BlogPost(query_params: ManualBlogQuerySegments) -> Element { #[component] fn AutomaticBlogPost(name: String, surname: String) -> Element { - render! { + rsx! { div{"This is your blogpost with a query segment:"} div{ "name={name}&surname={surname}" } } @@ -80,7 +80,7 @@ fn AutomaticBlogPost(name: String, surname: String) -> Element { #[component] fn App() -> Element { - render! { Router::{} } + rsx! { Router::{} } } fn main() { diff --git a/examples/read_size.rs b/examples/read_size.rs index a2d6abce1..9d1b878cc 100644 --- a/examples/read_size.rs +++ b/examples/read_size.rs @@ -38,7 +38,7 @@ fn app() -> Element { } }; - render!( + rsx!( div { width: "50%", height: "50%", diff --git a/examples/readme.rs b/examples/readme.rs index 83036875d..1691dec82 100644 --- a/examples/readme.rs +++ b/examples/readme.rs @@ -11,7 +11,7 @@ fn main() { fn app() -> Element { let mut count = use_signal(|| 0); - render! { + rsx! { h1 { "High-Five counter: {count}" } button { onclick: move |_| count += 1, "Up high!" } button { onclick: move |_| count -= 1, "Down low!" } diff --git a/examples/router.rs b/examples/router.rs index 882257502..5a28b54ac 100644 --- a/examples/router.rs +++ b/examples/router.rs @@ -34,7 +34,7 @@ enum Route { #[component] fn NavBar() -> Element { - render! { + rsx! { nav { ul { li { @@ -51,12 +51,12 @@ fn NavBar() -> Element { #[component] fn Home() -> Element { - render! { h1 { "Welcome to the Dioxus Blog!" } } + rsx! { h1 { "Welcome to the Dioxus Blog!" } } } #[component] fn Blog() -> Element { - render! { + rsx! { h1 { "Blog" } Outlet:: {} } @@ -64,7 +64,7 @@ fn Blog() -> Element { #[component] fn BlogList() -> Element { - render! { + rsx! { h2 { "Choose a post" } ul { li { @@ -89,12 +89,12 @@ fn BlogList() -> Element { #[component] fn BlogPost(name: String) -> Element { - render! { h2 { "Blog Post: {name}" } } + rsx! { h2 { "Blog Post: {name}" } } } #[component] fn PageNotFound(route: Vec) -> Element { - render! { + rsx! { h1 { "Page not found" } p { "We are terribly sorry, but the page you requested doesn't exist." } pre { color: "red", "log:\nattemped to navigate to: {route:?}" } diff --git a/examples/rsx_usage.rs b/examples/rsx_usage.rs index 64449f591..e9cfa57aa 100644 --- a/examples/rsx_usage.rs +++ b/examples/rsx_usage.rs @@ -1,7 +1,7 @@ -//! A tour of the render! macro +//! A tour of the rsx! macro //! ------------------------ //! -//! This example serves as an informal quick reference of all the things that the render! macro can do. +//! This example serves as an informal quick reference of all the things that the rsx! macro can do. //! //! A full in-depth reference guide is available at: https://www.notion.so/rsx-macro-basics-ef6e367dec124f4784e736d91b0d0b19 //! @@ -55,7 +55,7 @@ fn main() { // let formatting_tuple = ("a", "b"); // let lazy_fmt = format_args!("lazily formatted text"); // let asd = 123; -// render! { +// rsx! { // div { // // Elements // div {} @@ -95,10 +95,10 @@ fn main() { // } // // Expressions can be used in element position too: -// {render!(p { "More templating!" })}, +// {rsx!(p { "More templating!" })}, // // Iterators -// {(0..10).map(|i| render!(li { "{i}" }))}, +// {(0..10).map(|i| rsx!(li { "{i}" }))}, // // Iterators within expressions // { @@ -106,19 +106,19 @@ fn main() { // // Iterators *should* have keys when you can provide them. // // Keys make your app run faster. Make sure your keys are stable, unique, and predictable. // // Using an "ID" associated with your data is a good idea. -// data.into_iter().map(|(k, v)| render!(li { key: "{k}", "{v}" })) +// data.into_iter().map(|(k, v)| rsx!(li { key: "{k}", "{v}" })) // } // // Matching // match true { -// true => render!( h1 {"Top text"}), -// false => render!( h1 {"Bottom text"}) +// true => rsx!( h1 {"Top text"}), +// false => rsx!( h1 {"Bottom text"}) // } // // Conditional rendering // // Dioxus conditional rendering is based around None/Some. We have no special syntax for conditionals. -// // You can convert a bool condition to render! with .then and .or -// {true.then(|| render!(div {}))}, +// // You can convert a bool condition to rsx! with .then and .or +// {true.then(|| rsx!(div {}))}, // // Alternatively, you can use the "if" syntax - but both branches must be resolve to Element // if false { @@ -130,7 +130,7 @@ fn main() { // // Using optionals for diverging branches // // Note that since this is wrapped in curlies, it's interpreted as an expression // {if true { -// Some(render!(h1 {"Top text"})) +// Some(rsx!(h1 {"Top text"})) // } else { // None // }} @@ -172,7 +172,7 @@ fn main() { // // Can pass in props directly as an expression // { // let props = TallerProps {a: "hello", children: None }; -// render!(Taller { ..props }) +// rsx!(Taller { ..props }) // } // // Spreading can also be overridden manually @@ -225,7 +225,7 @@ fn main() { // } // fn helper<'a>(cx: &'a ScopeState, text: &'a str) -> Element { -// render! { +// rsx! { // p { "{text}" } // } // } @@ -235,7 +235,7 @@ fn main() { // // something like Clippy. // #[component(no_case_check)] // fn lowercase_helper() -> Element { -// render! { +// rsx! { // "asd" // } // } @@ -254,18 +254,18 @@ fn main() { // // something like Clippy. // #[component(no_case_check)] // pub fn lowercase_component() -> Element { -// render! { "look ma, no uppercase" } +// rsx! { "look ma, no uppercase" } // } // } // /// Documention for this component is visible within the rsx macro // #[component] // pub fn Taller( -// /// Fields are documented and accessible in render! +// /// Fields are documented and accessible in rsx! // a: &'static str, // children: Element, // ) -> Element { -// render! { {&children} } +// rsx! { {&children} } // } // #[derive(Props, PartialEq, Eq)] @@ -285,7 +285,7 @@ fn main() { // #[component] // fn WithInline(cx: Scope<'a>, text: &'a str) -> Element { -// render! { +// rsx! { // p { "{text}" } // } // } @@ -295,7 +295,7 @@ fn main() { // where // T: Display, // { -// render! { +// rsx! { // p { "{text}" } // } // } diff --git a/examples/scroll_to_top.rs b/examples/scroll_to_top.rs index 5b16e23ce..d84b4c994 100644 --- a/examples/scroll_to_top.rs +++ b/examples/scroll_to_top.rs @@ -7,7 +7,7 @@ fn main() { fn app() -> Element { let mut header_element = use_signal(|| None); - render! { + rsx! { div { h1 { onmounted: move |cx| header_element.set(Some(cx.inner().clone())), diff --git a/examples/shortcut.rs b/examples/shortcut.rs index 58b031522..f86d2fc48 100644 --- a/examples/shortcut.rs +++ b/examples/shortcut.rs @@ -10,5 +10,5 @@ fn app() -> Element { _ = use_global_shortcut("ctrl+s", move || toggled.toggle()); - render!("toggle: {toggled}") + rsx!("toggle: {toggled}") } diff --git a/examples/shorthand.rs b/examples/shorthand.rs index 619145f6a..7dc889a94 100644 --- a/examples/shorthand.rs +++ b/examples/shorthand.rs @@ -14,10 +14,10 @@ fn app() -> Element { // todo: i'd like it for children on elements to be inferred as the children of the element // also should shorthands understand references/dereferences? // ie **a, *a, &a, &mut a, etc - let children = render! { "Child" }; + let children = rsx! { "Child" }; let onclick = move |_| println!("Clicked!"); - render! { + rsx! { div { class, id, {&children} } Component { a, b, c, children, onclick } Component { a, ..ComponentProps { a: 1, b: 2, c: 3, children: None, onclick: Default::default() } } @@ -26,7 +26,7 @@ fn app() -> Element { #[component] fn Component(a: i32, b: i32, c: i32, children: Element, onclick: EventHandler<()>) -> Element { - render! { + rsx! { div { "{a}" } div { "{b}" } div { "{c}" } diff --git a/examples/signals.rs b/examples/signals.rs index d4649f0dc..962463362 100644 --- a/examples/signals.rs +++ b/examples/signals.rs @@ -26,7 +26,7 @@ fn app() -> Element { } }); - render! { + rsx! { h1 { "High-Five counter: {count}" } button { onclick: move |_| count += 1, "Up high!" } button { onclick: move |_| count -= 1, "Down low!" } diff --git a/examples/simple_desktop.rs b/examples/simple_desktop.rs index e81ee2f93..bc758388a 100644 --- a/examples/simple_desktop.rs +++ b/examples/simple_desktop.rs @@ -32,7 +32,7 @@ enum Route { #[component] fn NavBar() -> Element { - render! { + rsx! { h1 { "Your app here" } ul { li { @@ -73,20 +73,20 @@ fn NavBar() -> Element { #[component] fn Home() -> Element { log::debug!("rendering home {:?}", current_scope_id()); - render! { h1 { "Home" } } + rsx! { h1 { "Home" } } } #[component] fn BlogList() -> Element { log::debug!("rendering blog list {:?}", current_scope_id()); - render! { div { "Blog List" } } + rsx! { div { "Blog List" } } } #[component] fn BlogPost(post: String) -> Element { log::debug!("rendering blog post {}", post); - render! { + rsx! { div { h3 { "blog post: {post}" } Link { to: Route::BlogList {}, "back to blog list" } @@ -96,5 +96,5 @@ fn BlogPost(post: String) -> Element { #[component] fn Oranges() -> Element { - render!("Oranges are not apples!") + rsx!("Oranges are not apples!") } diff --git a/examples/simple_list.rs b/examples/simple_list.rs index 36597647e..dfe1f4b76 100644 --- a/examples/simple_list.rs +++ b/examples/simple_list.rs @@ -5,20 +5,20 @@ fn main() { } fn app() -> Element { - render!( + rsx!( div { // Use Map directly to lazily pull elements - {(0..10).map(|f| render! { "{f}" })}, + {(0..10).map(|f| rsx! { "{f}" })}, // Collect into an intermediate collection if necessary, and call into_iter {["a", "b", "c", "d", "e", "f"] .into_iter() - .map(|f| render! { "{f}" }) + .map(|f| rsx! { "{f}" }) .collect::>() .into_iter()}, // Use optionals - {Some(render! { "Some" })}, + {Some(rsx! { "Some" })}, // use a for loop where the body itself is RSX for name in 0..10 { diff --git a/examples/simple_router.rs b/examples/simple_router.rs index f39e21a05..811aa32a3 100644 --- a/examples/simple_router.rs +++ b/examples/simple_router.rs @@ -14,12 +14,12 @@ enum Route { #[component] fn Homepage() -> Element { - render! { h1 { "Welcome home" } } + rsx! { h1 { "Welcome home" } } } #[component] fn Blog(id: String) -> Element { - render! { + rsx! { h1 { "How to make: " } p { "{id}" } } @@ -27,7 +27,7 @@ fn Blog(id: String) -> Element { #[component] fn Nav() -> Element { - render! { + rsx! { nav { li { Link { to: Route::Homepage {}, "Go home" } diff --git a/examples/spread.rs b/examples/spread.rs index 1f49f7e5a..b16c10ccf 100644 --- a/examples/spread.rs +++ b/examples/spread.rs @@ -8,7 +8,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { spreadable_component { width: "10px", extra_data: "hello{1}", @@ -20,7 +20,7 @@ fn app() -> Element { } fn spreadable_component(props: Props) -> Element { - render! { + rsx! { audio { ..props.attributes, "1: {props.extra_data}\n2: {props.extra_data2}" } } } diff --git a/examples/ssr.rs b/examples/ssr.rs index 0f000bf64..c356222b3 100644 --- a/examples/ssr.rs +++ b/examples/ssr.rs @@ -9,10 +9,10 @@ fn main() { let mut vdom = VirtualDom::prebuilt(app); println!("{}", dioxus_ssr::render(&vdom)); - // Or we can render render! calls themselves + // Or we can render rsx! calls themselves println!( "{}", - dioxus_ssr::render_element(render! { + dioxus_ssr::render_element(rsx! { div { h1 { "Hello, world!" } } @@ -30,7 +30,7 @@ fn main() { } fn app() -> Element { - render!( + rsx!( div { h1 { "Title" } p { "Body" } diff --git a/examples/streams.rs b/examples/streams.rs index 581100c35..37a03b37a 100644 --- a/examples/streams.rs +++ b/examples/streams.rs @@ -18,7 +18,7 @@ fn app() -> Element { } }); - render! { + rsx! { h1 { "High-Five counter: {count}" } } } diff --git a/examples/suspense.rs b/examples/suspense.rs index 37fdb6d1d..c40b446fb 100644 --- a/examples/suspense.rs +++ b/examples/suspense.rs @@ -2,7 +2,7 @@ //! Suspense in Dioxus //! -//! Currently, `render!` does not accept futures as values. To achieve the functionality +//! Currently, `rsx!` does not accept futures as values. To achieve the functionality //! of suspense, we need to make a new component that performs its own suspense //! handling. //! @@ -29,7 +29,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { h1 { "Dogs are very important" } p { @@ -64,11 +64,11 @@ fn Doggo() -> Element { }); match fut.value().read().as_ref() { - Some(Ok(resp)) => render! { + Some(Ok(resp)) => rsx! { button { onclick: move |_| fut.restart(), "Click to fetch another doggo" } div { img { max_width: "500px", max_height: "500px", src: "{resp.message}" } } }, - Some(Err(_)) => render! { div { "loading dogs failed" } }, - None => render! { div { "loading dogs..." } }, + Some(Err(_)) => rsx! { div { "loading dogs failed" } }, + None => rsx! { div { "loading dogs..." } }, } } diff --git a/examples/svg.rs b/examples/svg.rs index c12774567..9818591bf 100644 --- a/examples/svg.rs +++ b/examples/svg.rs @@ -8,7 +8,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { div { user_select: "none", webkit_user_select: "none", margin_left: "10%", margin_right: "10%", h1 { "Click die to generate a new value" } div { cursor: "pointer", height: "100%", width: "100%", Dice {} } @@ -33,7 +33,7 @@ fn Dice() -> Element { let mut value = use_signal(|| 5); let active_dots = use_selector(move || &DOTS_FOR_VALUE[(value() - 1) as usize]); - render! { + rsx! { svg { view_box: "-1000 -1000 2000 2000", prevent_default: "onclick", diff --git a/examples/svg_basic.rs b/examples/svg_basic.rs index b0523b3f7..7c9c37f92 100644 --- a/examples/svg_basic.rs +++ b/examples/svg_basic.rs @@ -1,7 +1,7 @@ use dioxus::prelude::*; fn app() -> Element { - render! { + rsx! { svg { width: "200", height: "250", diff --git a/examples/tailwind/src/main.rs b/examples/tailwind/src/main.rs index 0a6dcde01..ab21af5e4 100644 --- a/examples/tailwind/src/main.rs +++ b/examples/tailwind/src/main.rs @@ -10,7 +10,7 @@ fn main() { pub fn app() -> Element { let grey_background = true; - render!( + rsx!( div { header { class: "text-gray-400 body-font", @@ -73,7 +73,7 @@ pub fn app() -> Element { } pub fn StacksIcon() -> Element { - render!( + rsx!( svg { fill: "none", stroke: "currentColor", @@ -88,7 +88,7 @@ pub fn StacksIcon() -> Element { } pub fn RightArrowIcon() -> Element { - render!( + rsx!( svg { fill: "none", stroke: "currentColor", diff --git a/examples/tasks.rs b/examples/tasks.rs index e5f51a2b0..887668fb9 100644 --- a/examples/tasks.rs +++ b/examples/tasks.rs @@ -19,7 +19,7 @@ fn app() -> Element { } }); - render! { + rsx! { div { h1 { "Current count: {count}" } button { onclick: move |_| count.set(0), "Reset the count" } diff --git a/examples/textarea.rs b/examples/textarea.rs index 44c8462c3..3ad2143ec 100644 --- a/examples/textarea.rs +++ b/examples/textarea.rs @@ -9,7 +9,7 @@ fn main() { fn app() -> Element { let mut model = use_signal(|| String::from("asd")); - render! { + rsx! { textarea { class: "border", rows: "10", diff --git a/examples/todomvc.rs b/examples/todomvc.rs index 34d845fbf..26e6c8fa5 100644 --- a/examples/todomvc.rs +++ b/examples/todomvc.rs @@ -45,7 +45,7 @@ pub fn app() -> Element { filtered_todos }); - render! { + rsx! { section { class: "todoapp", style { {include_str!("./assets/todomvc.css")} } TodoHeader { todos } @@ -98,7 +98,7 @@ pub fn TodoHeader(mut todos: Signal>) -> Element { } }; - render! { + rsx! { header { class: "header", h1 { "todos" } input { @@ -119,7 +119,7 @@ pub fn TodoEntry(mut todos: Signal>, id: u32) -> Element let checked = use_selector(move || todos.read().get(&id).unwrap().checked); let contents = use_selector(move || todos.read().get(&id).unwrap().contents.clone()); - render! { + rsx! { li { class: if checked() { "completed" }, class: if is_editing() { "editing" }, div { class: "view", input { @@ -168,7 +168,7 @@ pub fn ListFooter( ) -> Element { let show_clear_completed = use_selector(move || todos.read().values().any(|todo| todo.checked)); - render! { + rsx! { footer { class: "footer", span { class: "todo-count", strong { "{active_todo_count} " } @@ -209,7 +209,7 @@ pub fn ListFooter( } pub fn PageFooter() -> Element { - render! { + rsx! { footer { class: "info", p { "Double-click to edit a todo" } p { diff --git a/examples/video_stream.rs b/examples/video_stream.rs index 0a7c4e9ac..17b94ea4a 100644 --- a/examples/video_stream.rs +++ b/examples/video_stream.rs @@ -43,7 +43,7 @@ fn app() -> Element { }); }); - render! { + rsx! { div { video { src: "/videos/test_video.mp4", diff --git a/examples/web_component.rs b/examples/web_component.rs index dd9221361..42a55f6f6 100644 --- a/examples/web_component.rs +++ b/examples/web_component.rs @@ -5,7 +5,7 @@ fn main() { } fn app() -> Element { - render! { + rsx! { web-component { "my-prop": "5%", } diff --git a/examples/window_event.rs b/examples/window_event.rs index 421869c65..3372dbc3b 100644 --- a/examples/window_event.rs +++ b/examples/window_event.rs @@ -18,7 +18,7 @@ fn app() -> Element { let mut always_on_top = use_signal(|| false); let mut decorations = use_signal(|| false); - render!( + rsx!( link { href: "https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css", rel: "stylesheet" diff --git a/examples/window_focus.rs b/examples/window_focus.rs index 3a4739e43..67d444037 100644 --- a/examples/window_focus.rs +++ b/examples/window_focus.rs @@ -21,7 +21,7 @@ fn app() -> Element { _ => {} }); - render! { + rsx! { div { width: "100%", height: "100%", display: "flex", flex_direction: "column", align_items: "center", if focused() { "This window is focused!" diff --git a/examples/window_zoom.rs b/examples/window_zoom.rs index 5907588bd..2c6f68b00 100644 --- a/examples/window_zoom.rs +++ b/examples/window_zoom.rs @@ -7,7 +7,7 @@ fn main() { fn app() -> Element { let mut level = use_signal(|| 1.0); - render! { + rsx! { input { r#type: "number", value: "{level}", diff --git a/examples/xss_safety.rs b/examples/xss_safety.rs index c7ba2663d..8f4dc7245 100644 --- a/examples/xss_safety.rs +++ b/examples/xss_safety.rs @@ -11,7 +11,7 @@ fn main() { fn app() -> Element { let mut contents = use_signal(|| String::from("")); - render! { + rsx! { div { h1 {"Dioxus is XSS-Safe"} h3 { "{contents}" } diff --git a/packages/core-macro/src/component_body/mod.rs b/packages/core-macro/src/component_body/mod.rs index 5855d47b5..2e1475657 100644 --- a/packages/core-macro/src/component_body/mod.rs +++ b/packages/core-macro/src/component_body/mod.rs @@ -67,11 +67,11 @@ //! //! #[name_changer(CoolName)] //! pub fn LameName() -> Element { -//! render! { "I want a cool name!" } +//! rsx! { "I want a cool name!" } //! } //! //! pub fn App() -> Element { -//! render! { CoolName {} } // Renders: "I want a cool name!" +//! rsx! { CoolName {} } // Renders: "I want a cool name!" //! } //! ``` //! ## Implementing a component body deserializer diff --git a/packages/core-macro/src/lib.rs b/packages/core-macro/src/lib.rs index 116bc91db..a4626b65a 100644 --- a/packages/core-macro/src/lib.rs +++ b/packages/core-macro/src/lib.rs @@ -40,20 +40,21 @@ pub fn derive_typed_builder(input: TokenStream) -> TokenStream { /// The rsx! macro makes it easy for developers to write jsx-style markup in their components. #[proc_macro] pub fn rsx(tokens: TokenStream) -> TokenStream { - render(tokens) -} - -/// The render! macro makes it easy for developers to write jsx-style markup in their components. -/// -/// The render macro automatically renders rsx - making it unhygienic. -#[proc_macro] -pub fn render(s: TokenStream) -> TokenStream { - match syn::parse::(s) { + match syn::parse::(tokens) { Err(err) => err.to_compile_error().into(), Ok(body) => RenderCallBody(body).into_token_stream().into(), } } +/// The rsx! macro makes it easy for developers to write jsx-style markup in their components. +/// +/// The render macro automatically renders rsx - making it unhygienic. +#[deprecated(note = "Use `rsx!` instead.")] +#[proc_macro] +pub fn render(tokens: TokenStream) -> TokenStream { + rsx(tokens) +} + /// Derive props for a component within the component definition. /// /// This macro provides a simple transformation from `Scope<{}>` to `Scope

`, @@ -129,7 +130,7 @@ pub(crate) const COMPONENT_ARG_CASE_CHECK_OFF: &str = "no_case_check"; /// ```rust,ignore /// #[component] /// fn GreetBob() -> Element { -/// render! { "hello, bob" } +/// rsx! { "hello, bob" } /// } /// /// // is equivalent to @@ -139,7 +140,7 @@ pub(crate) const COMPONENT_ARG_CASE_CHECK_OFF: &str = "no_case_check"; /// #[warn(non_snake_case)] /// #[inline(always)] /// fn __dx_inner_comp() -> Element { -/// render! { "hello, bob" } +/// rsx! { "hello, bob" } /// } /// // There's no function call overhead since __dx_inner_comp has the #[inline(always)] attribute, /// // so don't worry about performance. @@ -150,7 +151,7 @@ pub(crate) const COMPONENT_ARG_CASE_CHECK_OFF: &str = "no_case_check"; /// ```rust,ignore /// #[component(no_case_check)] /// fn GreetPerson(person: String) -> Element { -/// render! { "hello, {person}" } +/// rsx! { "hello, {person}" } /// } /// /// // is equivalent to @@ -168,7 +169,7 @@ pub(crate) const COMPONENT_ARG_CASE_CHECK_OFF: &str = "no_case_check"; /// fn __dx_inner_comp(props: GreetPersonProps>e) -> Element { /// let GreetPersonProps { person } = &cx.props; /// { -/// render! { "hello, {person}" } +/// rsx! { "hello, {person}" } /// } /// } /// diff --git a/packages/core/src/properties.rs b/packages/core/src/properties.rs index 1be8e957f..8413d35ca 100644 --- a/packages/core/src/properties.rs +++ b/packages/core/src/properties.rs @@ -75,7 +75,7 @@ where /// /// ```rust /// fn app() -> Element { -/// render! { +/// rsx! { /// div {} /// } /// } @@ -90,7 +90,7 @@ where /// } /// /// fn app(props: MyProps) -> Element { -/// render! { +/// rsx! { /// div { /// "{props.data}" /// } @@ -103,7 +103,7 @@ where /// ```rust /// #[component] /// fn app(data: String) -> Element { -/// render! { +/// rsx! { /// div { /// "{data}" /// } diff --git a/packages/core/src/runtime.rs b/packages/core/src/runtime.rs index ecff4b199..eda52e9a6 100644 --- a/packages/core/src/runtime.rs +++ b/packages/core/src/runtime.rs @@ -140,7 +140,7 @@ impl Runtime { /// } /// /// fn app() -> Element { -/// render!{ Component { runtime: Runtime::current().unwrap() } } +/// rsx!{ Component { runtime: Runtime::current().unwrap() } } /// } /// /// // In a dynamic library @@ -158,7 +158,7 @@ impl Runtime { /// fn Component(cx: ComponentProps) -> Element { /// cx.use_hook(|| RuntimeGuard::new(cx.runtime.clone())); /// -/// render! { div {} } +/// rsx! { div {} } /// } /// ``` pub struct RuntimeGuard(()); diff --git a/packages/core/src/scope_context.rs b/packages/core/src/scope_context.rs index 65c1df9ec..79a2fa71e 100644 --- a/packages/core/src/scope_context.rs +++ b/packages/core/src/scope_context.rs @@ -176,12 +176,12 @@ impl ScopeContext { /// /// static app: Component = |cx| { /// cx.use_hook(|| cx.provide_context(SharedState("world"))); - /// render!(Child {}) + /// rsx!(Child {}) /// } /// /// static Child: Component = |cx| { /// let state = cx.consume_state::(); - /// render!(div { "hello {state.0}" }) + /// rsx!(div { "hello {state.0}" }) /// } /// ``` pub fn provide_context(&self, value: T) -> T { diff --git a/packages/core/tests/attr_cleanup.rs b/packages/core/tests/attr_cleanup.rs index 7c17c6d45..541f59f90 100644 --- a/packages/core/tests/attr_cleanup.rs +++ b/packages/core/tests/attr_cleanup.rs @@ -10,8 +10,8 @@ fn attrs_cycle() { let mut dom = VirtualDom::new(|| { let id = generation(); match id % 2 { - 0 => render! { div {} }, - 1 => render! { + 0 => rsx! { div {} }, + 1 => rsx! { div { h1 { class: "{id}", id: "{id}" } } }, _ => unreachable!(), diff --git a/packages/core/tests/boolattrs.rs b/packages/core/tests/boolattrs.rs index 4966bef6f..66cc483f8 100644 --- a/packages/core/tests/boolattrs.rs +++ b/packages/core/tests/boolattrs.rs @@ -3,7 +3,7 @@ use dioxus::prelude::*; #[test] fn bool_test() { - let mut app = VirtualDom::new(|| render!(div { hidden: false })); + let mut app = VirtualDom::new(|| rsx!(div { hidden: false })); assert_eq!( app.rebuild_to_vec().santize().edits, diff --git a/packages/core/tests/bubble_error.rs b/packages/core/tests/bubble_error.rs index af2c61ad9..2cab0ec71 100644 --- a/packages/core/tests/bubble_error.rs +++ b/packages/core/tests/bubble_error.rs @@ -11,7 +11,7 @@ fn app() -> Element { let value = raw.parse::().unwrap_or(123.123); - render! { div { "hello {value}" } } + rsx! { div { "hello {value}" } } } #[test] diff --git a/packages/core/tests/context_api.rs b/packages/core/tests/context_api.rs index 18ac231f2..40aacb6b7 100644 --- a/packages/core/tests/context_api.rs +++ b/packages/core/tests/context_api.rs @@ -6,16 +6,16 @@ fn state_shares() { fn app() -> Element { provide_context(generation() as i32); - render!(child_1 {}) + rsx!(child_1 {}) } fn child_1() -> Element { - render!(child_2 {}) + rsx!(child_2 {}) } fn child_2() -> Element { let value = consume_context::().unwrap(); - render!("Value is {value}") + rsx!("Value is {value}") } let mut dom = VirtualDom::new(app); diff --git a/packages/core/tests/create_dom.rs b/packages/core/tests/create_dom.rs index 658b2a512..1cfa5c2d3 100644 --- a/packages/core/tests/create_dom.rs +++ b/packages/core/tests/create_dom.rs @@ -12,7 +12,7 @@ use dioxus_core::ElementId; #[test] fn test_original_diff() { let mut dom = VirtualDom::new(|| { - render! { + rsx! { div { div { "Hello, world!" } } } }); @@ -32,7 +32,7 @@ fn test_original_diff() { #[test] fn create() { let mut dom = VirtualDom::new(|| { - render! { + rsx! { div { div { "Hello, world!" @@ -75,7 +75,7 @@ fn create() { #[test] fn create_list() { - let mut dom = VirtualDom::new(|| render! {{(0..3).map(|f| render!( div { "hello" } ))}}); + let mut dom = VirtualDom::new(|| rsx! {{(0..3).map(|f| rsx!( div { "hello" } ))}}); let _edits = dom.rebuild_to_vec().santize(); @@ -95,7 +95,7 @@ fn create_list() { #[test] fn create_simple() { let mut dom = VirtualDom::new(|| { - render! { + rsx! { div {} div {} div {} @@ -122,7 +122,7 @@ fn create_simple() { #[test] fn create_components() { let mut dom = VirtualDom::new(|| { - render! { + rsx! { Child { "abc1" } Child { "abc2" } Child { "abc3" } @@ -135,7 +135,7 @@ fn create_components() { } fn Child(cx: ChildProps) -> Element { - render! { + rsx! { h1 {} div { {cx.children} } p {} @@ -150,7 +150,7 @@ fn create_components() { #[test] fn anchors() { let mut dom = VirtualDom::new(|| { - render! { + rsx! { if true { div { "hello" } } diff --git a/packages/core/tests/create_element.rs b/packages/core/tests/create_element.rs index 5fa4a83da..23cbb8527 100644 --- a/packages/core/tests/create_element.rs +++ b/packages/core/tests/create_element.rs @@ -4,7 +4,7 @@ use dioxus::prelude::*; #[test] fn multiroot() { let mut dom = VirtualDom::new(|| { - render! { + rsx! { div { "Hello a" } div { "Hello b" } div { "Hello c" } diff --git a/packages/core/tests/create_fragments.rs b/packages/core/tests/create_fragments.rs index 6ad1dfbd2..930067e66 100644 --- a/packages/core/tests/create_fragments.rs +++ b/packages/core/tests/create_fragments.rs @@ -7,7 +7,7 @@ use dioxus_core::ElementId; #[test] fn empty_fragment_creates_nothing() { fn app() -> Element { - render!({ () }) + rsx!({ () }) } let mut vdom = VirtualDom::new(app); @@ -25,7 +25,7 @@ fn empty_fragment_creates_nothing() { #[test] fn root_fragments_work() { let mut vdom = VirtualDom::new(|| { - render!( + rsx!( div { "hello" } div { "goodbye" } ) @@ -40,16 +40,16 @@ fn root_fragments_work() { #[test] fn fragments_nested() { let mut vdom = VirtualDom::new(|| { - render!( + rsx!( div { "hello" } div { "goodbye" } - {render! { + {rsx! { div { "hello" } div { "goodbye" } - {render! { + {rsx! { div { "hello" } div { "goodbye" } - {render! { + {rsx! { div { "hello" } div { "goodbye" } }} @@ -67,7 +67,7 @@ fn fragments_nested() { #[test] fn fragments_across_components() { fn app() -> Element { - render! { + rsx! { demo_child {} demo_child {} demo_child {} @@ -77,7 +77,7 @@ fn fragments_across_components() { fn demo_child() -> Element { let world = "world"; - render! { "hellO!", {world} } + rsx! { "hellO!", {world} } } assert_eq!( @@ -89,9 +89,9 @@ fn fragments_across_components() { #[test] fn list_fragments() { fn app() -> Element { - render!( + rsx!( h1 { "hello" } - {(0..6).map(|f| render!( span { "{f}" }))} + {(0..6).map(|f| rsx!( span { "{f}" }))} ) } assert_eq!( diff --git a/packages/core/tests/create_lists.rs b/packages/core/tests/create_lists.rs index 5138402d2..523769026 100644 --- a/packages/core/tests/create_lists.rs +++ b/packages/core/tests/create_lists.rs @@ -5,11 +5,11 @@ use dioxus_core::ElementId; // A real-world usecase of templates at peak performance // In react, this would be a lot of node creation. // -// In Dioxus, we memoize the render! body and simplify it down to a few template loads +// In Dioxus, we memoize the rsx! body and simplify it down to a few template loads // // Also note that the IDs increase linearly. This lets us drive a vec on the renderer for O(1) re-indexing fn app() -> Element { - render! { + rsx! { div { for i in 0..3 { div { diff --git a/packages/core/tests/create_passthru.rs b/packages/core/tests/create_passthru.rs index f58796267..31e19cfe4 100644 --- a/packages/core/tests/create_passthru.rs +++ b/packages/core/tests/create_passthru.rs @@ -6,7 +6,7 @@ use dioxus_core::ElementId; #[test] fn nested_passthru_creates() { fn app() -> Element { - render! { + rsx! { PassThru { PassThru { PassThru { div { "hi" } } @@ -17,7 +17,7 @@ fn nested_passthru_creates() { #[component] fn PassThru(children: Element) -> Element { - render!({ children }) + rsx!({ children }) } let mut dom = VirtualDom::new(app); @@ -38,7 +38,7 @@ fn nested_passthru_creates() { #[test] fn nested_passthru_creates_add() { fn app() -> Element { - render! { + rsx! { ChildComp { "1" ChildComp { @@ -54,7 +54,7 @@ fn nested_passthru_creates_add() { #[component] fn ChildComp(children: Element) -> Element { - render! {{children}} + rsx! {{children}} } let mut dom = VirtualDom::new(app); @@ -81,7 +81,7 @@ fn dynamic_node_as_root() { fn app() -> Element { let a = 123; let b = 456; - render! { "{a}", "{b}" } + rsx! { "{a}", "{b}" } } let mut dom = VirtualDom::new(app); diff --git a/packages/core/tests/cycle.rs b/packages/core/tests/cycle.rs index e3b36f071..c6b3eaa0c 100644 --- a/packages/core/tests/cycle.rs +++ b/packages/core/tests/cycle.rs @@ -5,8 +5,8 @@ use dioxus::prelude::*; #[test] fn cycling_elements() { let mut dom = VirtualDom::new(|| match generation() % 2 { - 0 => render! { div { "wasd" } }, - 1 => render! { div { "abcd" } }, + 0 => rsx! { div { "wasd" } }, + 1 => rsx! { div { "abcd" } }, _ => unreachable!(), }); diff --git a/packages/core/tests/diff_component.rs b/packages/core/tests/diff_component.rs index ef7ba93be..33fe2773b 100644 --- a/packages/core/tests/diff_component.rs +++ b/packages/core/tests/diff_component.rs @@ -13,46 +13,46 @@ fn component_swap() { render_phase += 1; match *render_phase() { - 0 => render! { + 0 => rsx! { nav_bar {} dash_board {} }, - 1 => render! { + 1 => rsx! { nav_bar {} dash_results {} }, - 2 => render! { + 2 => rsx! { nav_bar {} dash_board {} }, - 3 => render! { + 3 => rsx! { nav_bar {} dash_results {} }, - 4 => render! { + 4 => rsx! { nav_bar {} dash_board {} }, - _ => render!("blah"), + _ => rsx!("blah"), } } fn nav_bar() -> Element { - render! { - h1 { "NavBar", {(0..3).map(|_| render!(nav_link {}))} } + rsx! { + h1 { "NavBar", {(0..3).map(|_| rsx!(nav_link {}))} } } } fn nav_link() -> Element { - render!( h1 { "nav_link" } ) + rsx!( h1 { "nav_link" } ) } fn dash_board() -> Element { - render!( div { "dashboard" } ) + rsx!( div { "dashboard" } ) } fn dash_results() -> Element { - render!( div { "results" } ) + rsx!( div { "results" } ) } let mut dom = VirtualDom::new(app); diff --git a/packages/core/tests/diff_element.rs b/packages/core/tests/diff_element.rs index 90310fa5e..59d35be83 100644 --- a/packages/core/tests/diff_element.rs +++ b/packages/core/tests/diff_element.rs @@ -6,7 +6,7 @@ use dioxus_core::{ElementId, NoOpMutations}; fn text_diff() { fn app() -> Element { let gen = generation(); - render!( h1 { "hello {gen}" } ) + rsx!( h1 { "hello {gen}" } ) } let mut vdom = VirtualDom::new(app); @@ -37,8 +37,8 @@ fn element_swap() { let gen = generation(); match gen % 2 { - 0 => render!( h1 { "hello 1" } ), - 1 => render!( h2 { "hello 2" } ), + 0 => rsx!( h1 { "hello 1" } ), + 1 => rsx!( h2 { "hello 2" } ), _ => unreachable!(), } } diff --git a/packages/core/tests/diff_keyed_list.rs b/packages/core/tests/diff_keyed_list.rs index e3711c9a3..7d7ae9f5e 100644 --- a/packages/core/tests/diff_keyed_list.rs +++ b/packages/core/tests/diff_keyed_list.rs @@ -17,7 +17,7 @@ fn keyed_diffing_out_of_order() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); { @@ -59,7 +59,7 @@ fn keyed_diffing_out_of_order_adds() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -85,7 +85,7 @@ fn keyed_diffing_out_of_order_adds_3() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -111,7 +111,7 @@ fn keyed_diffing_out_of_order_adds_4() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -137,7 +137,7 @@ fn keyed_diffing_out_of_order_adds_5() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -162,7 +162,7 @@ fn keyed_diffing_additions() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -187,7 +187,7 @@ fn keyed_diffing_additions_and_moves_on_ends() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -216,7 +216,7 @@ fn keyed_diffing_additions_and_moves_in_middle() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -250,7 +250,7 @@ fn controlled_keyed_diffing_out_of_order() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -284,7 +284,7 @@ fn controlled_keyed_diffing_out_of_order_max_test() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -313,7 +313,7 @@ fn remove_list() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); @@ -338,7 +338,7 @@ fn no_common_keys() { _ => unreachable!(), }; - render!({ order.iter().map(|i| render!(div { key: "{i}" })) }) + rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) }) }); dom.rebuild(&mut dioxus_core::NoOpMutations); diff --git a/packages/core/tests/diff_unkeyed_list.rs b/packages/core/tests/diff_unkeyed_list.rs index c8ccbfbd8..b85203584 100644 --- a/packages/core/tests/diff_unkeyed_list.rs +++ b/packages/core/tests/diff_unkeyed_list.rs @@ -7,7 +7,7 @@ fn list_creates_one_by_one() { let mut dom = VirtualDom::new(|| { let gen = generation(); - render! { + rsx! { div { for i in 0..gen { div { "{i}" } @@ -76,7 +76,7 @@ fn removes_one_by_one() { let mut dom = VirtualDom::new(|| { let gen = 3 - generation() % 4; - render! { + rsx! { div { for i in 0..gen { div { "{i}" } @@ -151,7 +151,7 @@ fn removes_one_by_one() { #[test] fn list_shrink_multiroot() { let mut dom = VirtualDom::new(|| { - render! { + rsx! { div { for i in 0..generation() { div { "{i}" } @@ -212,7 +212,7 @@ fn removes_one_by_one_multiroot() { let mut dom = VirtualDom::new(|| { let gen = 3 - generation() % 4; - render! { + rsx! { div { {(0..gen).map(|i| rsx! { div { "{i}" } @@ -275,7 +275,7 @@ fn removes_one_by_one_multiroot() { #[test] fn two_equal_fragments_are_equal_static() { let mut dom = VirtualDom::new(|| { - render! { + rsx! { for _ in 0..5 { div { "hello" } } @@ -289,7 +289,7 @@ fn two_equal_fragments_are_equal_static() { #[test] fn two_equal_fragments_are_equal() { let mut dom = VirtualDom::new(|| { - render! { + rsx! { for i in 0..5 { div { "hello {i}" } } @@ -310,7 +310,7 @@ fn remove_many() { _ => unreachable!(), }; - render! { + rsx! { for i in 0..num { div { "hello {i}" } } diff --git a/packages/core/tests/error_boundary.rs b/packages/core/tests/error_boundary.rs index b7d2518a0..f886e0325 100644 --- a/packages/core/tests/error_boundary.rs +++ b/packages/core/tests/error_boundary.rs @@ -9,7 +9,7 @@ fn catches_panic() { } fn app() -> Element { - render! { + rsx! { div { h1 { "Title" } @@ -28,5 +28,5 @@ fn ThrowChild() -> Element { let _g: i32 = "123123".parse().throw()?; - render! { div {} } + rsx! { div {} } } diff --git a/packages/core/tests/event_propagation.rs b/packages/core/tests/event_propagation.rs index aa2615494..d7949b8a4 100644 --- a/packages/core/tests/event_propagation.rs +++ b/packages/core/tests/event_propagation.rs @@ -52,14 +52,14 @@ fn events_propagate() { } fn app() -> Element { - render! { + rsx! { div { onclick: move |_| { println!("top clicked"); *CLICKS.lock().unwrap() += 1; }, {vec![ - render! { + rsx! { problematic_child {} } ].into_iter()} @@ -68,7 +68,7 @@ fn app() -> Element { } fn problematic_child() -> Element { - render! { + rsx! { button { onclick: move |evt| { println!("bottom clicked"); let mut clicks = CLICKS.lock().unwrap(); diff --git a/packages/core/tests/kitchen_sink.rs b/packages/core/tests/kitchen_sink.rs index ec2152d08..05926c05a 100644 --- a/packages/core/tests/kitchen_sink.rs +++ b/packages/core/tests/kitchen_sink.rs @@ -5,7 +5,7 @@ fn basic_syntax_is_a_template() -> Element { let asd = 123; let var = 123; - render! { + rsx! { div { key: "12345", class: "asd", class: "{asd}", class: if true { "{asd}" }, class: if false { diff --git a/packages/core/tests/lifecycle.rs b/packages/core/tests/lifecycle.rs index bd1e5dd81..27fbd9b73 100644 --- a/packages/core/tests/lifecycle.rs +++ b/packages/core/tests/lifecycle.rs @@ -19,7 +19,7 @@ fn manual_diffing() { fn app(cx: AppProps) -> Element { let val = cx.value.lock().unwrap(); - render! { div { "{val}" } } + rsx! { div { "{val}" } } }; let value = Arc::new(Mutex::new("Hello")); @@ -46,7 +46,7 @@ fn events_generate() { let mut count = use_signal(|| 0); match *count() { - 0 => render! { + 0 => rsx! { div { onclick: move |_| count += 1, div { "nested" } "Click me!" diff --git a/packages/core/tests/miri_full_app.rs b/packages/core/tests/miri_full_app.rs index b3317912c..200213da5 100644 --- a/packages/core/tests/miri_full_app.rs +++ b/packages/core/tests/miri_full_app.rs @@ -27,7 +27,7 @@ fn app() -> Element { let mut idx = use_signal(|| 0); let onhover = |_| println!("go!"); - render! { + rsx! { div { button { onclick: move |_| { @@ -48,5 +48,5 @@ fn app() -> Element { #[component] fn ChildExample(i: i32, onhover: EventHandler) -> Element { - render! { li { onmouseover: move |e| onhover.call(e), "{i}" } } + rsx! { li { onmouseover: move |e| onhover.call(e), "{i}" } } } diff --git a/packages/core/tests/miri_simple.rs b/packages/core/tests/miri_simple.rs index 23762b51b..5520870be 100644 --- a/packages/core/tests/miri_simple.rs +++ b/packages/core/tests/miri_simple.rs @@ -3,7 +3,7 @@ use dioxus::prelude::*; #[test] fn app_drops() { fn app() -> Element { - render! { div {} } + rsx! { div {} } } let mut dom = VirtualDom::new(app); @@ -21,7 +21,7 @@ fn hooks_drop() { use_hook(|| String::from("asd")); use_hook(|| String::from("asd")); - render! { div {} } + rsx! { div {} } } let mut dom = VirtualDom::new(app); @@ -36,7 +36,7 @@ fn contexts_drop() { fn app() -> Element { provide_context(String::from("asd")); - render! { + rsx! { div { ChildComp {} } } } @@ -44,7 +44,7 @@ fn contexts_drop() { fn ChildComp() -> Element { let el = consume_context::().unwrap(); - render! { div { "hello {el}" } } + rsx! { div { "hello {el}" } } } let mut dom = VirtualDom::new(app); @@ -61,7 +61,7 @@ fn tasks_drop() { // tokio::time::sleep(std::time::Duration::from_millis(100000)).await; }); - render! { div {} } + rsx! { div {} } } let mut dom = VirtualDom::new(app); @@ -77,7 +77,7 @@ fn root_props_drop() { struct RootProps(String); let mut dom = VirtualDom::new_with_props( - |cx| render!( div { "{cx.0}" } ), + |cx| rsx!( div { "{cx.0}" } ), RootProps("asdasd".to_string()), ); @@ -89,11 +89,11 @@ fn root_props_drop() { #[test] fn diffing_drops_old() { fn app() -> Element { - render! { + rsx! { div { match generation() % 2 { - 0 => render!( ChildComp1 { name: "asdasd".to_string() }), - 1 => render!( ChildComp2 { name: "asdasd".to_string() }), + 0 => rsx!( ChildComp1 { name: "asdasd".to_string() }), + 1 => rsx!( ChildComp2 { name: "asdasd".to_string() }), _ => todo!() } } @@ -102,12 +102,12 @@ fn diffing_drops_old() { #[component] fn ChildComp1(name: String) -> Element { - render! {"Hello {name}"} + rsx! {"Hello {name}"} } #[component] fn ChildComp2(name: String) -> Element { - render! {"Goodbye {name}"} + rsx! {"Goodbye {name}"} } let mut dom = VirtualDom::new(app); diff --git a/packages/core/tests/miri_stress.rs b/packages/core/tests/miri_stress.rs index 5e664ffe3..574772251 100644 --- a/packages/core/tests/miri_stress.rs +++ b/packages/core/tests/miri_stress.rs @@ -16,14 +16,14 @@ fn test_memory_leak() { spawn(async {}); if val == 2 || val == 4 { - return render!({}); + return rsx!({}); } let mut name = use_hook(|| String::from("numbers: ")); name.push_str("123 "); - render!( + rsx!( div { "Hello, world!" } Child {} Child {} @@ -45,7 +45,7 @@ fn test_memory_leak() { } fn BorrowedChild(cx: BorrowedProps) -> Element { - render! { + rsx! { div { "goodbye {cx.name}" Child {} @@ -55,7 +55,7 @@ fn test_memory_leak() { } fn Child() -> Element { - render!( div { "goodbye world" } ) + rsx!( div { "goodbye world" } ) } let mut dom = VirtualDom::new(app); @@ -79,7 +79,7 @@ fn memo_works_properly() { let name = use_hook(|| String::from("asd")); - render!( + rsx!( div { "Hello, world! {name}" } Child { na: "asdfg".to_string() } ) @@ -91,7 +91,7 @@ fn memo_works_properly() { } fn Child(cx: ChildProps) -> Element { - render!( div { "goodbye world" } ) + rsx!( div { "goodbye world" } ) } let mut dom = VirtualDom::new(app); @@ -119,11 +119,11 @@ fn free_works_on_root_hooks() { fn app(cx: AppProps) -> Element { let name: AppProps = use_hook(|| cx.clone()); - render!(child_component { inner: name.inner.clone() }) + rsx!(child_component { inner: name.inner.clone() }) } fn child_component(props: AppProps) -> Element { - render!( div { "{props.inner}" } ) + rsx!( div { "{props.inner}" } ) } let ptr = Rc::new("asdasd".to_string()); @@ -176,7 +176,7 @@ fn supports_async() { let mid = colors[1]; let small = colors[2]; - render! { + rsx! { div { background: "{big}", height: "stretch", width: "stretch", padding: "50", label { "hello" } div { background: "{mid}", height: "auto", width: "stretch", padding: "{padding}", diff --git a/packages/core/tests/safety.rs b/packages/core/tests/safety.rs index ddf384d6f..d6598cad5 100644 --- a/packages/core/tests/safety.rs +++ b/packages/core/tests/safety.rs @@ -5,7 +5,7 @@ use dioxus::prelude::*; /// Ensure no issues with not calling rebuild_to_vec #[test] fn root_node_isnt_null() { - let dom = VirtualDom::new(|| render!("Hello world!")); + let dom = VirtualDom::new(|| rsx!("Hello world!")); let scope = dom.base_scope(); diff --git a/packages/core/tests/suspense.rs b/packages/core/tests/suspense.rs index a3c66485f..01fd23840 100644 --- a/packages/core/tests/suspense.rs +++ b/packages/core/tests/suspense.rs @@ -20,7 +20,7 @@ fn suspense_resolves() { } fn app() -> Element { - render!( + rsx!( div { "Waiting for... " suspended_child {} @@ -38,5 +38,5 @@ fn suspended_child() -> Element { suspend()?; } - render!("child") + rsx!("child") } diff --git a/packages/core/tests/task.rs b/packages/core/tests/task.rs index de7c483b3..ea9f2ab13 100644 --- a/packages/core/tests/task.rs +++ b/packages/core/tests/task.rs @@ -25,7 +25,7 @@ async fn it_works() { }); }); - render!({ () }) + rsx!({ () }) } let mut dom = VirtualDom::new(app); diff --git a/packages/desktop/headless_tests/events.rs b/packages/desktop/headless_tests/events.rs index 45daa2f89..f81554266 100644 --- a/packages/desktop/headless_tests/events.rs +++ b/packages/desktop/headless_tests/events.rs @@ -209,7 +209,7 @@ fn app() -> Element { desktop_context.close(); } - render! { + rsx! { div { div { width: "100px", diff --git a/packages/desktop/headless_tests/rendering.rs b/packages/desktop/headless_tests/rendering.rs index 1fbc36e3f..041b0ed05 100644 --- a/packages/desktop/headless_tests/rendering.rs +++ b/packages/desktop/headless_tests/rendering.rs @@ -75,7 +75,7 @@ fn check_html_renders() -> Element { } }; - render! { + rsx! { div { id: "main_div", div { diff --git a/packages/dioxus-lib/README.md b/packages/dioxus-lib/README.md index f1493b021..210ea77c3 100644 --- a/packages/dioxus-lib/README.md +++ b/packages/dioxus-lib/README.md @@ -103,7 +103,7 @@ fn Example() -> Element { // both of these are equivalent rsx!("hello world")) - render!("hello world!") + rsx!("hello world!") } ``` @@ -246,7 +246,7 @@ use hooks to define the state and modify it from within listeners. fn App() -> Element { let name = use_signal(|| "world"); - render!("hello {name}!") + rsx!("hello {name}!") } ``` diff --git a/packages/dioxus-tui/benches/update.rs b/packages/dioxus-tui/benches/update.rs index a70565adb..489bcd212 100644 --- a/packages/dioxus-tui/benches/update.rs +++ b/packages/dioxus-tui/benches/update.rs @@ -116,7 +116,7 @@ fn Grid(cx: Scope) -> Element { } } - render! { + rsx! { div{ width: "100%", height: "100%", diff --git a/packages/dioxus-tui/examples/many_small_edit_stress.rs b/packages/dioxus-tui/examples/many_small_edit_stress.rs index 6351097eb..43d57096c 100644 --- a/packages/dioxus-tui/examples/many_small_edit_stress.rs +++ b/packages/dioxus-tui/examples/many_small_edit_stress.rs @@ -66,7 +66,7 @@ fn Grid(cx: Scope) -> Element { }); } - render! { + rsx! { div{ width: "100%", height: "100%", diff --git a/packages/dioxus/README.md b/packages/dioxus/README.md index f1493b021..210ea77c3 100644 --- a/packages/dioxus/README.md +++ b/packages/dioxus/README.md @@ -103,7 +103,7 @@ fn Example() -> Element { // both of these are equivalent rsx!("hello world")) - render!("hello world!") + rsx!("hello world!") } ``` @@ -246,7 +246,7 @@ use hooks to define the state and modify it from within listeners. fn App() -> Element { let name = use_signal(|| "world"); - render!("hello {name}!") + rsx!("hello {name}!") } ``` diff --git a/packages/fullstack/examples/axum-router/src/main.rs b/packages/fullstack/examples/axum-router/src/main.rs index ba55570ff..efb0598e6 100644 --- a/packages/fullstack/examples/axum-router/src/main.rs +++ b/packages/fullstack/examples/axum-router/src/main.rs @@ -33,7 +33,7 @@ enum Route { #[component] fn Blog(id: i32) -> Element { - render! { + rsx! { Link { to: Route::Home {}, "Go to counter" } table { tbody { diff --git a/packages/fullstack/examples/static-hydrated/src/main.rs b/packages/fullstack/examples/static-hydrated/src/main.rs index 854c645b9..14a58beb1 100644 --- a/packages/fullstack/examples/static-hydrated/src/main.rs +++ b/packages/fullstack/examples/static-hydrated/src/main.rs @@ -51,7 +51,7 @@ enum Route { #[component] fn Blog() -> Element { - render! { + rsx! { Link { to: Route::Home {}, "Go to counter" } table { tbody { diff --git a/packages/fullstack/src/adapters/axum_adapter.rs b/packages/fullstack/src/adapters/axum_adapter.rs index 867a9d94d..01f5d0a77 100644 --- a/packages/fullstack/src/adapters/axum_adapter.rs +++ b/packages/fullstack/src/adapters/axum_adapter.rs @@ -380,7 +380,7 @@ fn apply_request_parts_to_response( /// use dioxus_fullstack::{axum_adapter::render_handler_with_context, prelude::*}; /// /// fn app() -> Element { -/// render! { +/// rsx! { /// "hello!" /// } /// } diff --git a/packages/fullstack/src/router.rs b/packages/fullstack/src/router.rs index 945d34de8..f06c7bf8d 100644 --- a/packages/fullstack/src/router.rs +++ b/packages/fullstack/src/router.rs @@ -12,7 +12,7 @@ where use dioxus_router::prelude::RouterConfig; let cfg = props; - render! { + rsx! { dioxus_router::prelude::Router:: { config: move || { RouterConfig::default() diff --git a/packages/hooks/src/computed.rs b/packages/hooks/src/computed.rs index e01168411..42421a3d3 100644 --- a/packages/hooks/src/computed.rs +++ b/packages/hooks/src/computed.rs @@ -21,7 +21,7 @@ use std::{ /// fn Parent() -> Element { /// let count = use_tracked_state(|| 0); /// -/// render! { +/// rsx! { /// Child { /// count: count.clone(), /// } @@ -32,7 +32,7 @@ use std::{ /// fn Child(count: Tracked) -> Element { /// let less_than_five = use_selector(count, |count| *count < 5); /// -/// render! { +/// rsx! { /// "{less_than_five}" /// } /// } diff --git a/packages/hooks/src/use_memo.rs b/packages/hooks/src/use_memo.rs index d73310937..35eab38c0 100644 --- a/packages/hooks/src/use_memo.rs +++ b/packages/hooks/src/use_memo.rs @@ -18,14 +18,14 @@ use crate::UseFutureDep; /// // This will only be calculated when `number` has changed. /// number * 100 /// }); -/// render!( +/// rsx!( /// p { "{bigger_number}" } /// ) /// } /// /// #[component] /// fn App() -> Element { -/// render!(Calculator { number: 0 }) +/// rsx!(Calculator { number: 0 }) /// } /// ``` #[must_use = "Consider using `use_effect` to run rerun a callback when dependencies change"] diff --git a/packages/hooks/src/use_on_destroy.rs b/packages/hooks/src/use_on_destroy.rs index 6cc3d23fa..4ce5d5a0e 100644 --- a/packages/hooks/src/use_on_destroy.rs +++ b/packages/hooks/src/use_on_destroy.rs @@ -19,14 +19,14 @@ pub fn use_on_unmount(destroy: D) { /// /// fn app() -> Element { /// let state = use_signal(|| true); -/// render! { +/// rsx! { /// for _ in 0..100 { /// h1 { /// "spacer" /// } /// } /// if **state { -/// render! { +/// rsx! { /// child_component {} /// } /// } @@ -61,7 +61,7 @@ pub fn use_on_unmount(destroy: D) { /// } /// }); /// -/// render!{ +/// rsx!{ /// div { /// id: "my_element", /// "hello" diff --git a/packages/hooks/src/use_shared_state.rs b/packages/hooks/src/use_shared_state.rs index 501705cf6..d00f7b533 100644 --- a/packages/hooks/src/use_shared_state.rs +++ b/packages/hooks/src/use_shared_state.rs @@ -105,7 +105,7 @@ impl ProvidedStateInner { /// # use dioxus::prelude::*; /// # /// # fn app() -> Element { -/// # render! { +/// # rsx! { /// # Parent{} /// # } /// # } @@ -121,7 +121,7 @@ impl ProvidedStateInner { /// use_shared_state_provider(|| Theme::Dark); /// let theme = use_shared_state::().unwrap(); /// -/// render! { +/// rsx! { /// button{ /// onclick: move |_| { /// let current_theme = *theme.read(); @@ -141,7 +141,7 @@ impl ProvidedStateInner { /// let theme = use_shared_state::().unwrap(); /// let current_theme = *theme.read(); /// -/// render! { +/// rsx! { /// match current_theme { /// Theme::Dark => { /// "Dark mode" @@ -331,7 +331,7 @@ impl PartialEq for UseSharedState { /// # use dioxus::prelude::*; /// # /// # fn app() -> Element { -/// # render! { +/// # rsx! { /// # Parent{} /// # } /// # } @@ -347,7 +347,7 @@ impl PartialEq for UseSharedState { /// use_shared_state_provider(|| Theme::Dark); /// let theme = use_shared_state::().unwrap(); /// -/// render! { +/// rsx! { /// button{ /// onclick: move |_| { /// let current_theme = *theme.read(); diff --git a/packages/native-core/src/utils/persistant_iterator.rs b/packages/native-core/src/utils/persistant_iterator.rs index 50a3405fb..5fe456c44 100644 --- a/packages/native-core/src/utils/persistant_iterator.rs +++ b/packages/native-core/src/utils/persistant_iterator.rs @@ -202,7 +202,7 @@ fn traverse() { use dioxus::prelude::*; #[allow(non_snake_case)] fn Base() -> Element { - render!( + rsx!( div{ div{ "hello" @@ -305,7 +305,7 @@ fn persist_removes() { 1 => 2, _ => unreachable!(), }; - render!( + rsx!( div { for i in 0..children { p { key: "{i}", "{i}" } @@ -381,7 +381,7 @@ fn persist_instertions_before() { 1 => 2, _ => unreachable!(), }; - render!( + rsx!( div { for i in 0..children { p { key: "{i}", "{i}" } @@ -434,7 +434,7 @@ fn persist_instertions_after() { 1 => 2, _ => unreachable!(), }; - render!( + rsx!( div{ for i in 0..children { p { key: "{i}", "{i}" } diff --git a/packages/native-core/tests/called_minimally_on_build.rs b/packages/native-core/tests/called_minimally_on_build.rs index f4d499b0d..af0ca7a7c 100644 --- a/packages/native-core/tests/called_minimally_on_build.rs +++ b/packages/native-core/tests/called_minimally_on_build.rs @@ -116,7 +116,7 @@ macro_rules! test_state{ fn state_reduce_initally_called_minimally() { #[allow(non_snake_case)] fn Base() -> Element { - render!{ + rsx!{ div { div{ div{ diff --git a/packages/router-macro/src/layout.rs b/packages/router-macro/src/layout.rs index 43561797a..8d90244cb 100644 --- a/packages/router-macro/src/layout.rs +++ b/packages/router-macro/src/layout.rs @@ -22,7 +22,7 @@ impl Layout { .flat_map(|id| nests[id.0].dynamic_segments()); quote! { - render! { + rsx! { #comp_name { #(#dynamic_segments: #dynamic_segments,)* } } } diff --git a/packages/router-macro/src/lib.rs b/packages/router-macro/src/lib.rs index 05cce7f9e..55ac4184b 100644 --- a/packages/router-macro/src/lib.rs +++ b/packages/router-macro/src/lib.rs @@ -612,7 +612,7 @@ impl RouteEnum { fn call(&self, props: Self::Props) -> dioxus_core::Element { let initial_route = self.clone(); - render! { + rsx! { ::dioxus_router::prelude::Router::<#name> { config: move || props.take().initial_route(initial_route) } diff --git a/packages/router-macro/src/route.rs b/packages/router-macro/src/route.rs index 64ee16dd9..7903d9a20 100644 --- a/packages/router-macro/src/route.rs +++ b/packages/router-macro/src/route.rs @@ -247,7 +247,7 @@ impl Route { quote! { #[allow(unused)] (#last_index, Self::#name { #(#dynamic_segments,)* }) => { - render! { + rsx! { #component { #(#dynamic_segments_from_route: #dynamic_segments_from_route,)* } diff --git a/packages/router/README.md b/packages/router/README.md index d2a4d53e1..c44d6ae8e 100644 --- a/packages/router/README.md +++ b/packages/router/README.md @@ -48,14 +48,14 @@ enum Route { #[component] fn App() -> Element { - render! { + rsx! { Router:: { } } } #[component] fn Index() -> Element { - render! { + rsx! { h1 { "Index" } Link { to: Route::BlogList {}, @@ -66,7 +66,7 @@ fn Index() -> Element { #[component] fn Blog() -> Element { - render! { + rsx! { h1 { "Blog" } Outlet:: { } } @@ -74,7 +74,7 @@ fn Blog() -> Element { #[component] fn BlogList() -> Element { - render! { + rsx! { h2 { "List of blog posts" } Link { to: Route::BlogPost { blog_id: 0 }, @@ -89,7 +89,7 @@ fn BlogList() -> Element { #[component] fn BlogPost(blog_id: usize) -> Element { - render! { + rsx! { h2 { "Blog Post" } } } diff --git a/packages/router/benches/incremental.rs b/packages/router/benches/incremental.rs index a586bf878..80a6bf384 100644 --- a/packages/router/benches/incremental.rs +++ b/packages/router/benches/incremental.rs @@ -136,7 +136,7 @@ criterion_main!(benches); #[component] fn Blog() -> Element { - render! { + rsx! { div { "Blog" } @@ -145,7 +145,7 @@ fn Blog() -> Element { #[component] fn Post(id: usize) -> Element { - render! { + rsx! { for _ in 0..*id { div { "PostId: {id}" @@ -156,7 +156,7 @@ fn Post(id: usize) -> Element { #[component] fn PostHome() -> Element { - render! { + rsx! { div { "Post" } @@ -165,7 +165,7 @@ fn PostHome() -> Element { #[component] fn Home() -> Element { - render! { + rsx! { div { "Home" } @@ -192,7 +192,7 @@ enum Route { #[component] fn RenderPath(path: Route) -> Element { let path = path.clone(); - render! { + rsx! { Router:: { config: || RouterConfig::default().history(MemoryHistory::with_initial_path(path)) } diff --git a/packages/router/examples/simple_routes.rs b/packages/router/examples/simple_routes.rs index df7692e79..49049a222 100644 --- a/packages/router/examples/simple_routes.rs +++ b/packages/router/examples/simple_routes.rs @@ -49,7 +49,7 @@ fn main() { #[component] fn UserFrame(user_id: usize) -> Element { - render! { + rsx! { pre { "UserFrame{{\n\tuser_id:{user_id}\n}}" } div { background_color: "rgba(0,0,0,50%)", "children:" @@ -60,7 +60,7 @@ fn UserFrame(user_id: usize) -> Element { #[component] fn Route1(user_id: usize, dynamic: usize, query: String, extra: String) -> Element { - render! { + rsx! { pre { "Route1{{\n\tuser_id:{user_id},\n\tdynamic:{dynamic},\n\tquery:{query},\n\textra:{extra}\n}}" } @@ -85,7 +85,7 @@ fn Route1(user_id: usize, dynamic: usize, query: String, extra: String) -> Eleme #[component] fn Route2(user_id: usize) -> Element { - render! { + rsx! { pre { "Route2{{\n\tuser_id:{user_id}\n}}" } {(0..*user_id).map(|i| rsx!{ p { "{i}" } })}, p { "Footer" } @@ -111,7 +111,7 @@ fn Route3(dynamic: String) -> Element { let navigator = use_navigator(); - render! { + rsx! { input { oninput: move |evt| { *current_route_str.write() = evt.value(); @@ -146,7 +146,7 @@ fn Route3(dynamic: String) -> Element { match parsed { Ok(route) => { if route != current_route { - render! { + rsx! { Link { to: route.clone(), "{route}" @@ -158,7 +158,7 @@ fn Route3(dynamic: String) -> Element { } } Err(err) => { - render! { + rsx! { pre { color: "red", "Invalid route:\n{err}" diff --git a/packages/router/examples/static_generation.rs b/packages/router/examples/static_generation.rs index 9f479a2d6..463217ad6 100644 --- a/packages/router/examples/static_generation.rs +++ b/packages/router/examples/static_generation.rs @@ -54,7 +54,7 @@ async fn main() { #[component] fn Blog() -> Element { - render! { + rsx! { div { "Blog" } @@ -63,7 +63,7 @@ fn Blog() -> Element { #[component] fn Post(id: usize) -> Element { - render! { + rsx! { div { "PostId: {id}" } @@ -72,7 +72,7 @@ fn Post(id: usize) -> Element { #[component] fn PostHome() -> Element { - render! { + rsx! { div { "Post" } @@ -81,7 +81,7 @@ fn PostHome() -> Element { #[component] fn Home() -> Element { - render! { + rsx! { div { "Home" } diff --git a/packages/router/src/components/default_errors.rs b/packages/router/src/components/default_errors.rs index ccfc28be4..7d54084ad 100644 --- a/packages/router/src/components/default_errors.rs +++ b/packages/router/src/components/default_errors.rs @@ -8,7 +8,7 @@ pub fn FailureExternalNavigation() -> Element { #[allow(deprecated)] let router = use_router(); - render! { + rsx! { h1 { "External Navigation Failure!" } p { "The application tried to programmatically navigate to an external page. This " diff --git a/packages/router/src/components/history_buttons.rs b/packages/router/src/components/history_buttons.rs index d4fc86c49..0a20338a3 100644 --- a/packages/router/src/components/history_buttons.rs +++ b/packages/router/src/components/history_buttons.rs @@ -33,14 +33,14 @@ pub struct HistoryButtonProps { /// /// #[component] /// fn App() -> Element { -/// render! { +/// rsx! { /// Router:: {} /// } /// } /// /// #[component] /// fn Index() -> Element { -/// render! { +/// rsx! { /// GoBackButton { /// "go back" /// } @@ -76,7 +76,7 @@ pub fn GoBackButton( let disabled = !router.can_go_back(); - render! { + rsx! { button { disabled: "{disabled}", prevent_default: "onclick", onclick: move |_| router.go_back(), {children} } } } @@ -103,14 +103,14 @@ pub fn GoBackButton( /// /// #[component] /// fn App() -> Element { -/// render! { +/// rsx! { /// Router:: {} /// } /// } /// /// #[component] /// fn Index() -> Element { -/// render! { +/// rsx! { /// GoForwardButton { /// "go forward" /// } @@ -146,7 +146,7 @@ pub fn GoForwardButton( let disabled = !router.can_go_forward(); - render! { + rsx! { button { disabled: "{disabled}", prevent_default: "onclick", onclick: move |_| router.go_forward(), {children} } } } diff --git a/packages/router/src/components/link.rs b/packages/router/src/components/link.rs index f7749c7c9..089784e43 100644 --- a/packages/router/src/components/link.rs +++ b/packages/router/src/components/link.rs @@ -156,15 +156,15 @@ impl Debug for LinkProps { /// /// #[component] /// fn App() -> Element { -/// render! { +/// rsx! { /// Router:: {} /// } /// } /// /// #[component] /// fn Index() -> Element { -/// render! { -/// render! { +/// rsx! { +/// rsx! { /// Link { /// active_class: "active", /// class: "link_class", @@ -244,7 +244,7 @@ pub fn Link(props: LinkProps) -> Element { } }; - render! { + rsx! { a { onclick: action, href: "{href}", diff --git a/packages/router/src/components/outlet.rs b/packages/router/src/components/outlet.rs index fb6799a83..cf2fe6a0e 100644 --- a/packages/router/src/components/outlet.rs +++ b/packages/router/src/components/outlet.rs @@ -31,7 +31,7 @@ use dioxus_lib::prelude::*; /// /// #[component] /// fn Index() -> Element { -/// render! { +/// rsx! { /// div { /// "Index" /// } @@ -40,7 +40,7 @@ use dioxus_lib::prelude::*; /// /// #[component] /// fn Wrapper() -> Element { -/// render! { +/// rsx! { /// h1 { "App" } /// Outlet:: {} // The content of child routes will be rendered here /// } @@ -48,7 +48,7 @@ use dioxus_lib::prelude::*; /// /// #[component] /// fn Child() -> Element { -/// render! { +/// rsx! { /// p { /// "Child" /// } @@ -57,7 +57,7 @@ use dioxus_lib::prelude::*; /// /// # #[component] /// # fn App() -> Element { -/// # render! { +/// # rsx! { /// # Router:: { /// # config: || RouterConfig::default().history(MemoryHistory::with_initial_path(Route::Child {})) /// # } diff --git a/packages/router/src/components/router.rs b/packages/router/src/components/router.rs index 77c1829b8..858ff8ce2 100644 --- a/packages/router/src/components/router.rs +++ b/packages/router/src/components/router.rs @@ -146,7 +146,7 @@ where }); }); - render! { Outlet:: {} } + rsx! { Outlet:: {} } } #[cfg(feature = "serde")] @@ -171,5 +171,5 @@ where _marker: std::marker::PhantomData, }); - render! { Outlet:: {} } + rsx! { Outlet:: {} } } diff --git a/packages/router/src/hooks/use_navigator.rs b/packages/router/src/hooks/use_navigator.rs index e7f2a53a7..841d08d22 100644 --- a/packages/router/src/hooks/use_navigator.rs +++ b/packages/router/src/hooks/use_navigator.rs @@ -19,7 +19,7 @@ use crate::prelude::{Navigator, RouterContext}; /// /// #[component] /// fn App() -> Element { -/// render! { +/// rsx! { /// Router:: {} /// } /// } @@ -28,7 +28,7 @@ use crate::prelude::{Navigator, RouterContext}; /// fn Index() -> Element { /// let navigator = use_navigator(&cx); /// -/// render! { +/// rsx! { /// button { /// onclick: move |_| { navigator.push(Route::Dynamic { id: 1234 }); }, /// "Go to /1234" @@ -38,7 +38,7 @@ use crate::prelude::{Navigator, RouterContext}; /// /// #[component] /// fn Dynamic(id: usize) -> Element { -/// render! { +/// rsx! { /// p { /// "Current ID: {id}" /// } diff --git a/packages/router/src/hooks/use_route.rs b/packages/router/src/hooks/use_route.rs index 6f368aea1..566c90175 100644 --- a/packages/router/src/hooks/use_route.rs +++ b/packages/router/src/hooks/use_route.rs @@ -25,7 +25,7 @@ use crate::utils::use_router_internal::use_router_internal; /// /// #[component] /// fn App() -> Element { -/// render! { +/// rsx! { /// h1 { "App" } /// Router:: {} /// } @@ -34,7 +34,7 @@ use crate::utils::use_router_internal::use_router_internal; /// #[component] /// fn Index() -> Element { /// let path: Route = use_route(&cx).unwrap(); -/// render! { +/// rsx! { /// h2 { "Current Path" } /// p { "{path}" } /// } diff --git a/packages/router/src/incremental.rs b/packages/router/src/incremental.rs index 7e4f90a85..38b7a5bda 100644 --- a/packages/router/src/incremental.rs +++ b/packages/router/src/incremental.rs @@ -94,7 +94,7 @@ where ::Err: std::fmt::Display, { let path = path.clone(); - render! { + rsx! { Router:: { config: || RouterConfig::default().history(MemoryHistory::with_initial_path(path)) } diff --git a/packages/router/tests/via_ssr/link.rs b/packages/router/tests/via_ssr/link.rs index b03b380c0..699a245eb 100644 --- a/packages/router/tests/via_ssr/link.rs +++ b/packages/router/tests/via_ssr/link.rs @@ -31,7 +31,7 @@ where where ::Err: std::fmt::Display, { - render! { + rsx! { h1 { "App" } Router:: { config: || RouterConfig::default().history(MemoryHistory::default()) @@ -57,7 +57,7 @@ fn href_internal() { #[component] fn Root() -> Element { - render! { + rsx! { Link { to: Route::Test {}, "Link" @@ -95,7 +95,7 @@ fn href_external() { #[component] fn Root() -> Element { - render! { + rsx! { Link { to: "https://dioxuslabs.com/", "Link" @@ -133,7 +133,7 @@ fn with_class() { #[component] fn Root() -> Element { - render! { + rsx! { Link { to: Route::Test {}, class: "test_class", @@ -165,7 +165,7 @@ fn with_active_class_active() { #[component] fn Root() -> Element { - render! { + rsx! { Link { to: Route::Root {}, active_class: "active_class", @@ -205,7 +205,7 @@ fn with_active_class_inactive() { #[component] fn Root() -> Element { - render! { + rsx! { Link { to: Route::Test {}, active_class: "active_class", @@ -245,7 +245,7 @@ fn with_id() { #[component] fn Root() -> Element { - render! { + rsx! { Link { to: Route::Test {}, id: "test_id", @@ -284,7 +284,7 @@ fn with_new_tab() { #[component] fn Root() -> Element { - render! { + rsx! { Link { to: Route::Test {}, new_tab: true, @@ -316,7 +316,7 @@ fn with_new_tab_external() { #[component] fn Root() -> Element { - render! { + rsx! { Link { to: "https://dioxuslabs.com/", new_tab: true, @@ -355,7 +355,7 @@ fn with_rel() { #[component] fn Root() -> Element { - render! { + rsx! { Link { to: Route::Test {}, rel: "test_rel", diff --git a/packages/router/tests/via_ssr/outlet.rs b/packages/router/tests/via_ssr/outlet.rs index 6c56a0035..b73a9f8e6 100644 --- a/packages/router/tests/via_ssr/outlet.rs +++ b/packages/router/tests/via_ssr/outlet.rs @@ -36,7 +36,7 @@ fn prepare(path: impl Into) -> VirtualDom { #[component] fn App(cx: Scope) -> Element { - render! { + rsx! { h1 { "App" } Router:: { config: { @@ -49,14 +49,14 @@ fn prepare(path: impl Into) -> VirtualDom { #[component] fn RootIndex() -> Element { - render! { + rsx! { h2 { "Root Index" } } } #[component] fn Fixed() -> Element { - render! { + rsx! { h2 { "Fixed" } Outlet:: { } } @@ -64,21 +64,21 @@ fn prepare(path: impl Into) -> VirtualDom { #[component] fn FixedIndex() -> Element { - render! { + rsx! { h3 { "Fixed - Index" } } } #[component] fn FixedFixed() -> Element { - render! { + rsx! { h3 { "Fixed - Fixed"} } } #[component] fn Parameter(id: u8) -> Element { - render! { + rsx! { h2 { "Parameter {id}" } Outlet:: { } } @@ -86,14 +86,14 @@ fn prepare(path: impl Into) -> VirtualDom { #[component] fn ParameterIndex(id: u8) -> Element { - render! { + rsx! { h3 { "Parameter - Index" } } } #[component] fn ParameterFixed(id: u8) -> Element { - render! { + rsx! { h3 { "Parameter - Fixed" } } } diff --git a/packages/signals/README.md b/packages/signals/README.md index 429e1bed4..eb937d835 100644 --- a/packages/signals/README.md +++ b/packages/signals/README.md @@ -19,7 +19,7 @@ fn App() -> Element { print!("{signal}"); }); - render! { + rsx! { "{signal}" } } @@ -38,7 +38,7 @@ fn App() -> Element { // Because signal is never read in this component, this component will not rerun when the signal changes let signal = use_signal(|| 0); - render! { + rsx! { button { onclick: move |_| { *signal.write() += 1; @@ -61,7 +61,7 @@ struct ChildProps { #[component] fn Child(cx: Scope) -> Element { // This component does read from the signal, so when the signal changes it will rerun - render! { + rsx! { "{cx.props.signal}" } } @@ -78,7 +78,7 @@ fn App() -> Element { // Because signal is never read in this component, this component will not rerun when the signal changes use_context_provider(|| Signal::new(0)); - render! { + rsx! { Child {} } } @@ -87,7 +87,7 @@ fn App() -> Element { fn Child() -> Element { let signal: Signal = *use_context(cx).unwrap(); // This component does read from the signal, so when the signal changes it will rerun - render! { + rsx! { "{signal}" } } @@ -108,7 +108,7 @@ fn App() -> Element { let signal = use_signal(|| 0); let doubled = use_selector(|| signal * 2); - render! { + rsx! { button { onclick: move |_| *signal.write() += 1, "Increase" @@ -121,7 +121,7 @@ fn App() -> Element { #[component] fn Child(signal: ReadOnlySignal) -> Element { - render! { + rsx! { "{signal}" } } diff --git a/packages/signals/examples/context.rs b/packages/signals/examples/context.rs index 7afdf71a0..60b3759fe 100644 --- a/packages/signals/examples/context.rs +++ b/packages/signals/examples/context.rs @@ -11,7 +11,7 @@ fn app() -> Element { // Because signal is never read in this component, this component will not rerun when the signal changes use_context_provider(|| Signal::new(0)); - render! { + rsx! { Child {} } } @@ -19,7 +19,7 @@ fn app() -> Element { fn Child() -> Element { let signal: Signal = *use_context(cx).unwrap(); // This component does read from the signal, so when the signal changes it will rerun - render! { + rsx! { "{signal}" } } diff --git a/packages/signals/examples/dependancies.rs b/packages/signals/examples/dependancies.rs index fcd913781..f8db76549 100644 --- a/packages/signals/examples/dependancies.rs +++ b/packages/signals/examples/dependancies.rs @@ -23,7 +23,7 @@ fn app() -> Element { }); println!("Running app"); - render! { + rsx! { button { onclick: move |_| { local_state.set(local_state.get() + 1); diff --git a/packages/signals/examples/selector.rs b/packages/signals/examples/selector.rs index 8903ac871..d7f72e7bd 100644 --- a/packages/signals/examples/selector.rs +++ b/packages/signals/examples/selector.rs @@ -10,7 +10,7 @@ fn App() -> Element { let signal = use_signal(|| 0); let doubled = use_selector(move || signal * 2); - render! { + rsx! { button { onclick: move |_| *signal.write() += 1, "Increase" @@ -21,5 +21,5 @@ fn App() -> Element { #[component] fn Child(signal: ReadOnlySignal) -> Element { - render! { "{signal}" } + rsx! { "{signal}" } } diff --git a/packages/signals/examples/split_subscriptions.rs b/packages/signals/examples/split_subscriptions.rs index c9dd6c211..a9d5e3f90 100644 --- a/packages/signals/examples/split_subscriptions.rs +++ b/packages/signals/examples/split_subscriptions.rs @@ -21,7 +21,7 @@ fn use_app_data() -> ApplicationData { fn app() -> Element { use_context_provider(ApplicationData::default); - render! { + rsx! { div { ReadsFirst {} } div { ReadsSecond {} } div { ReadsManySignals {} } @@ -32,7 +32,7 @@ fn ReadsFirst() -> Element { println!("running first"); let data = use_app_data(cx); - render! { + rsx! { button { onclick: move |_| { *data.first_data.write() += 1; @@ -59,7 +59,7 @@ fn ReadsSecond() -> Element { println!("running second"); let data = use_app_data(cx); - render! { + rsx! { button { onclick: move |_| { *data.second_data.write() += 1; @@ -86,7 +86,7 @@ fn ReadsManySignals() -> Element { println!("running many signals"); let data = use_app_data(cx); - render! { + rsx! { button { onclick: move |_| { data.many_signals.write().push(Signal::new(0)); @@ -122,7 +122,7 @@ fn Child(cx: Scope) -> Element { println!("running child"); let count = cx.props.count; - render! { + rsx! { div { "Child: {count}" button { diff --git a/packages/signals/src/selector.rs b/packages/signals/src/selector.rs index 3f3ce00a2..7850e086e 100644 --- a/packages/signals/src/selector.rs +++ b/packages/signals/src/selector.rs @@ -18,7 +18,7 @@ use crate::{get_effect_stack, signal::SignalData, CopyValue, Effect, ReadOnlySig /// count += 1; /// assert_eq!(double.value(), count * 2); /// -/// render! { "{double}" } +/// rsx! { "{double}" } /// } /// ``` #[must_use = "Consider using `use_effect` to rerun a callback when dependencies change"] diff --git a/packages/signals/src/signal.rs b/packages/signals/src/signal.rs index ab75a2861..cfd8d54fa 100644 --- a/packages/signals/src/signal.rs +++ b/packages/signals/src/signal.rs @@ -28,7 +28,7 @@ use crate::{get_effect_stack, CopyValue, Effect, EffectStack}; /// /// // Because signals have automatic dependency tracking, if you never read them in a component, that component will not be re-rended when the signal is updated. /// // The app component will never be rerendered in this example. -/// render! { Child { state: count } } +/// rsx! { Child { state: count } } /// } /// /// #[component] @@ -40,7 +40,7 @@ use crate::{get_effect_stack, CopyValue, Effect, EffectStack}; /// *state.write() += 1; /// }); /// -/// render! { +/// rsx! { /// button { /// onclick: move |_| *state.write() += 1, /// "{state}" @@ -112,7 +112,7 @@ pub(crate) struct SignalData { /// /// // Because signals have automatic dependency tracking, if you never read them in a component, that component will not be re-rended when the signal is updated. /// // The app component will never be rerendered in this example. -/// render! { Child { state: count } } +/// rsx! { Child { state: count } } /// } /// /// #[component] @@ -124,7 +124,7 @@ pub(crate) struct SignalData { /// *state.write() += 1; /// }); /// -/// render! { +/// rsx! { /// button { /// onclick: move |_| *state.write() += 1, /// "{state}" diff --git a/packages/signals/tests/create.rs b/packages/signals/tests/create.rs index 5803552db..db5cce57d 100644 --- a/packages/signals/tests/create.rs +++ b/packages/signals/tests/create.rs @@ -7,7 +7,7 @@ use dioxus_signals::*; #[test] fn create_signals_global() { let mut dom = VirtualDom::new(|cx| { - render! { + rsx! { for _ in 0..10 { Child {} } @@ -17,7 +17,7 @@ fn create_signals_global() { fn Child() -> Element { let signal = create_without_cx(); - render! { + rsx! { "{signal}" } } @@ -32,7 +32,7 @@ fn create_signals_global() { #[test] fn deref_signal() { let mut dom = VirtualDom::new(|cx| { - render! { + rsx! { for _ in 0..10 { Child {} } @@ -45,7 +45,7 @@ fn deref_signal() { // You can call signals like functions to get a Ref of their value. assert_eq!(&*signal(), "hello world"); - render! { + rsx! { "hello world" } } @@ -59,7 +59,7 @@ fn drop_signals() { let generation = generation(); let count = if generation % 2 == 0 { 10 } else { 0 }; - render! { + rsx! { for _ in 0..count { Child {} } @@ -69,7 +69,7 @@ fn drop_signals() { fn Child() -> Element { let signal = create_without_cx(); - render! { + rsx! { "{signal}" } } diff --git a/packages/signals/tests/effect.rs b/packages/signals/tests/effect.rs index 5a04a39d1..ed19e3a7c 100644 --- a/packages/signals/tests/effect.rs +++ b/packages/signals/tests/effect.rs @@ -32,7 +32,7 @@ fn effects_rerun() { }); signal += 1; - render! { + rsx! { div {} } }, diff --git a/packages/signals/tests/selector.rs b/packages/signals/tests/selector.rs index 1b4d6b45c..4fd7ef682 100644 --- a/packages/signals/tests/selector.rs +++ b/packages/signals/tests/selector.rs @@ -36,7 +36,7 @@ fn memos_rerun() { signal += 1; assert_eq!(memo.value(), 1); - render! { + rsx! { div {} } }, @@ -73,7 +73,7 @@ fn memos_prevents_component_rerun() { *signal.write() = 1; } - render! { + rsx! { Child { signal: signal, counter: cx.props.clone(), @@ -118,7 +118,7 @@ fn memos_prevents_component_rerun() { _ => panic!("Unexpected generation"), } - render! { + rsx! { div {} } } diff --git a/packages/signals/tests/subscribe.rs b/packages/signals/tests/subscribe.rs index ce2733d30..03d895b3f 100644 --- a/packages/signals/tests/subscribe.rs +++ b/packages/signals/tests/subscribe.rs @@ -28,7 +28,7 @@ fn reading_subscribes() { cx.props.borrow_mut().parent += 1; - render! { + rsx! { for id in 0..10 { Child { signal: signal, @@ -61,7 +61,7 @@ fn reading_subscribes() { .entry(cx.scope_id()) .or_default() += 1; - render! { + rsx! { "{cx.props.signal}" } } diff --git a/packages/ssr/README.md b/packages/ssr/README.md index 29dac898e..10d6fae1b 100644 --- a/packages/ssr/README.md +++ b/packages/ssr/README.md @@ -18,7 +18,7 @@ This crate is a part of the broader Dioxus ecosystem. For more resources about D Dioxus SSR provides utilities to render Dioxus components to valid HTML. Once rendered, the HTML can be rehydrated client-side or served from your web server of choice. ```rust, ignore -let app: Component = |cx| render!(div {"hello world!"}); +let app: Component = |cx| rsx!(div {"hello world!"}); let mut vdom = VirtualDom::new(app); let _ = vdom.rebuild(); @@ -29,12 +29,12 @@ assert_eq!(text, "

hello world!
") ## Basic Usage -The simplest example is to simply render some `render!` nodes to HTML. This can be done with the [`render_element`] API. +The simplest example is to simply render some `rsx!` nodes to HTML. This can be done with the [`render_element`] API. ```rust, ignore -let content = dioxus_ssr::render_element(render!{ +let content = dioxus_ssr::render_element(rsx!{ div { - (0..5).map(|i| render!( + (0..5).map(|i| rsx!( "Number: {i}" )) } @@ -84,10 +84,10 @@ The rest of the space - IE doing this more efficiently, caching the VirtualDom, ## Usage without a VirtualDom -Dioxus SSR needs an arena to allocate from - whether it be the VirtualDom or a dedicated Bump allocator. To render `render!` directly to a string, you'll want to create a `Renderer` and call `render_element`. +Dioxus SSR needs an arena to allocate from - whether it be the VirtualDom or a dedicated Bump allocator. To render `rsx!` directly to a string, you'll want to create a `Renderer` and call `render_element`. ```rust, ignore -let text = dioxus_ssr::Renderer::new().render_element(render!{ +let text = dioxus_ssr::Renderer::new().render_element(rsx!{ div { "hello world" } }); assert_eq!(text, "
hello world!
") @@ -96,7 +96,7 @@ assert_eq!(text, "
hello world!
") This can be automated with the `render_element!` macro: ```rust, ignore -let text = render_element!(render!( div { "hello world" } )); +let text = render_element!(rsx!( div { "hello world" } )); ``` ## Usage in static site generation diff --git a/packages/ssr/src/lib.rs b/packages/ssr/src/lib.rs index e5b0e5e04..5e05a9f9e 100644 --- a/packages/ssr/src/lib.rs +++ b/packages/ssr/src/lib.rs @@ -19,7 +19,7 @@ use dioxus_core::{Element, VirtualDom}; pub use crate::renderer::Renderer; -/// A convenience function to render an `render!` call to a string +/// A convenience function to render an `rsx!` call to a string /// /// For advanced rendering, create a new `SsrRender`. pub fn render_element(element: Element) -> String { diff --git a/packages/ssr/src/renderer.rs b/packages/ssr/src/renderer.rs index bd5a76f8d..5767ad489 100644 --- a/packages/ssr/src/renderer.rs +++ b/packages/ssr/src/renderer.rs @@ -232,7 +232,7 @@ fn to_string_works() { let dynamic = 123; let dyn2 = ""; // this should be escaped - render! { + rsx! { div { class: "asdasdasd", class: "asdasdasd", id: "id-{dynamic}", "Hello world 1 -->" "{dynamic}" @@ -289,7 +289,7 @@ fn empty_for_loop_works() { use dioxus::prelude::*; fn app() -> Element { - render! { + rsx! { div { class: "asdasdasd", for _ in (0..5) { @@ -332,7 +332,7 @@ fn empty_render_works() { use dioxus::prelude::*; fn app() -> Element { - render! {} + rsx! {} } let mut dom = VirtualDom::new(app); diff --git a/packages/ssr/tests/bool_attr.rs b/packages/ssr/tests/bool_attr.rs index 9558cbef4..40441b5a7 100644 --- a/packages/ssr/tests/bool_attr.rs +++ b/packages/ssr/tests/bool_attr.rs @@ -3,7 +3,7 @@ use dioxus::prelude::*; #[test] fn static_boolean_attributs() { fn app() -> Element { - render! { + rsx! { div { hidden: "false" } div { hidden: "true" } } @@ -21,7 +21,7 @@ fn static_boolean_attributs() { #[test] fn dynamic_boolean_attributs() { fn app() -> Element { - render! { + rsx! { div { hidden: false } div { hidden: true } } diff --git a/packages/ssr/tests/hydration.rs b/packages/ssr/tests/hydration.rs index dafeea1ff..c921fca36 100644 --- a/packages/ssr/tests/hydration.rs +++ b/packages/ssr/tests/hydration.rs @@ -3,7 +3,7 @@ use dioxus::prelude::*; #[test] fn root_ids() { fn app() -> Element { - render! { div { width: "100px" } } + rsx! { div { width: "100px" } } } let mut dom = VirtualDom::new(app); @@ -19,7 +19,7 @@ fn root_ids() { fn dynamic_attributes() { fn app() -> Element { let dynamic = 123; - render! { + rsx! { div { width: "100px", div { width: "{dynamic}px" } } } } @@ -36,7 +36,7 @@ fn dynamic_attributes() { #[test] fn listeners() { fn app() -> Element { - render! { + rsx! { div { width: "100px", div { onclick: |_| {} } } } } @@ -51,7 +51,7 @@ fn listeners() { fn app2() -> Element { let dynamic = 123; - render! { + rsx! { div { width: "100px", div { width: "{dynamic}px", onclick: |_| {} } } } } @@ -69,7 +69,7 @@ fn listeners() { fn text_nodes() { fn app() -> Element { let dynamic_text = "hello"; - render! { + rsx! { div { {dynamic_text} } } } @@ -84,7 +84,7 @@ fn text_nodes() { fn app2() -> Element { let dynamic = 123; - render! { + rsx! { div { "{dynamic}", "{1234}" } } } @@ -102,11 +102,11 @@ fn text_nodes() { #[test] fn components_hydrate() { fn app() -> Element { - render! { Child {} } + rsx! { Child {} } } fn Child() -> Element { - render! { div { "hello" } } + rsx! { div { "hello" } } } let mut dom = VirtualDom::new(app); @@ -118,12 +118,12 @@ fn components_hydrate() { ); fn app2() -> Element { - render! { Child2 {} } + rsx! { Child2 {} } } fn Child2() -> Element { let dyn_text = "hello"; - render! { + rsx! { div { {dyn_text} } } } @@ -137,11 +137,11 @@ fn components_hydrate() { ); fn app3() -> Element { - render! { Child3 {} } + rsx! { Child3 {} } } fn Child3() -> Element { - render! { div { width: "{1}" } } + rsx! { div { width: "{1}" } } } let mut dom = VirtualDom::new(app3); @@ -153,13 +153,13 @@ fn components_hydrate() { ); fn app4() -> Element { - render! { Child4 {} } + rsx! { Child4 {} } } fn Child4() -> Element { - render! { + rsx! { for _ in 0..2 { - {render! { "{1}" }} + {rsx! { "{1}" }} } } } @@ -180,7 +180,7 @@ fn hello_world_hydrates() { fn app() -> Element { let mut count = use_signal(|| 0); - render! { + rsx! { h1 { "High-Five counter: {count}" } button { onclick: move |_| count += 1, "Up high!" } button { onclick: move |_| count -= 1, "Down low!" } diff --git a/packages/ssr/tests/inner_html.rs b/packages/ssr/tests/inner_html.rs index 07d4876a4..0379def55 100644 --- a/packages/ssr/tests/inner_html.rs +++ b/packages/ssr/tests/inner_html.rs @@ -3,7 +3,7 @@ use dioxus::prelude::*; #[test] fn static_inner_html() { fn app() -> Element { - render! { div { dangerous_inner_html: "
1234
" } } + rsx! { div { dangerous_inner_html: "
1234
" } } } let mut dom = VirtualDom::new(app); @@ -16,7 +16,7 @@ fn static_inner_html() { fn dynamic_inner_html() { fn app() -> Element { let inner_html = "
1234
"; - render! { div { dangerous_inner_html: "{inner_html}" } } + rsx! { div { dangerous_inner_html: "{inner_html}" } } } let mut dom = VirtualDom::new(app); diff --git a/packages/ssr/tests/simple.rs b/packages/ssr/tests/simple.rs index 040bf7bf4..a70168433 100644 --- a/packages/ssr/tests/simple.rs +++ b/packages/ssr/tests/simple.rs @@ -3,7 +3,7 @@ use dioxus::prelude::*; #[test] fn simple() { fn App() -> Element { - render! { div { "hello!" } } + rsx! { div { "hello!" } } } let mut dom = VirtualDom::new(App); @@ -12,7 +12,7 @@ fn simple() { assert_eq!(dioxus_ssr::render(&dom), "
hello!
"); assert_eq!( - dioxus_ssr::render_element(render!( div {"hello!"} )), + dioxus_ssr::render_element(rsx!( div {"hello!"} )), "
hello!
" ); } @@ -20,10 +20,10 @@ fn simple() { #[test] fn lists() { assert_eq!( - dioxus_ssr::render_element(render! { + dioxus_ssr::render_element(rsx! { ul { { - (0..5).map(|i| render! { + (0..5).map(|i| rsx! { li { "item {i}" } }) } @@ -37,7 +37,7 @@ fn lists() { fn dynamic() { let dynamic = 123; assert_eq!( - dioxus_ssr::render_element(render! { + dioxus_ssr::render_element(rsx! { div { "Hello world 1 -->" "{dynamic}" "<-- Hello world 2" } }), "
Hello world 1 -->123<-- Hello world 2
" @@ -52,14 +52,14 @@ fn components() { } fn MyComponent(MyComponentProps { name }: MyComponentProps) -> Element { - render! { div { "component {name}" } } + rsx! { div { "component {name}" } } } assert_eq!( - dioxus_ssr::render_element(render! { + dioxus_ssr::render_element(rsx! { div { { - (0..5).map(|name| render! { + (0..5).map(|name| rsx! { MyComponent { name: name } }) } @@ -72,10 +72,10 @@ fn components() { #[test] fn fragments() { assert_eq!( - dioxus_ssr::render_element(render! { + dioxus_ssr::render_element(rsx! { div { { - (0..5).map(|_| render! ({})) + (0..5).map(|_| rsx! ({})) } } }), diff --git a/packages/ssr/tests/styles.rs b/packages/ssr/tests/styles.rs index 7440c4616..963c07b48 100644 --- a/packages/ssr/tests/styles.rs +++ b/packages/ssr/tests/styles.rs @@ -3,7 +3,7 @@ use dioxus::prelude::*; #[test] fn static_styles() { fn app() -> Element { - render! { div { width: "100px" } } + rsx! { div { width: "100px" } } } let mut dom = VirtualDom::new(app); @@ -20,7 +20,7 @@ fn partially_dynamic_styles() { let dynamic = 123; assert_eq!( - dioxus_ssr::render_element(render! { + dioxus_ssr::render_element(rsx! { div { width: "100px", height: "{dynamic}px" } }), r#"
"# @@ -32,7 +32,7 @@ fn dynamic_styles() { let dynamic = 123; assert_eq!( - dioxus_ssr::render_element(render! { + dioxus_ssr::render_element(rsx! { div { width: "{dynamic}px" } }), r#"
"#