From 117488b574f20532830d8445b68c434ca0318402 Mon Sep 17 00:00:00 2001 From: alexanderpolson Date: Sun, 24 Aug 2025 14:09:24 -0700 Subject: [PATCH] improvement: Added more detailed example for complex data submission through ActionForm. (#233) --- src/progressive_enhancement/action_form.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/progressive_enhancement/action_form.md b/src/progressive_enhancement/action_form.md index 9074015..d4d8c12 100644 --- a/src/progressive_enhancement/action_form.md +++ b/src/progressive_enhancement/action_form.md @@ -66,10 +66,16 @@ Note the use of `on:submit:capture` rather than `on:submit`. This adds an event Server function arguments that are structs with nested serializable fields should make use of indexing notation of `serde_qs`. ```rust +#[derive(serde::Serialize, serde::Deserialize, Debug, Clone)] +struct Settings { + display_name: String, +} + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone)] struct HeftyData { first_name: String, last_name: String, + settings: Settings, } #[component] @@ -84,6 +90,11 @@ fn ComplexInput() -> impl IntoView { name="hefty_arg[last_name]" value="closures-everywhere" /> + } @@ -93,6 +104,7 @@ fn ComplexInput() -> impl IntoView { async fn very_important_fn(hefty_arg: HeftyData) -> Result<(), ServerFnError> { assert_eq!(hefty_arg.first_name.as_str(), "leptos"); assert_eq!(hefty_arg.last_name.as_str(), "closures-everywhere"); + aseert_eq!(hefty_arg.settings.display_name.as_str(), "my alias"); Ok(()) } ```