Expand description
Dioxus Fullstack submit adapters for Dioform.
The adapter keeps Dioform’s submission lifecycle local to the form. Server functions return
application-defined transport payloads, and callers map those payloads into structured
SubmitErrors. Transport failures stay on a separate explicit mapping path so network,
serialization, or server-function invocation failures do not become submit errors by accident.
#[cfg(feature = "server")]
mod fullstack_submit_example {
extern crate dioxus_server;
use dioxus_core::Event;
use dioform::{Form, FormHandle, SubmitError};
use dioform_fullstack::{ServerSubmitOutcome, SubmitBindingFullstackExt};
use dioxus_fullstack::{server, ServerFnError, ServerFnResult};
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, Form, PartialEq)]
struct SignupForm {
email: String,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
enum SignupError {
EmailTaken,
TryAgain,
}
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
enum SignupRejection {
EmailTaken,
}
#[server]
async fn submit_signup(
email: String,
) -> ServerFnResult<ServerSubmitOutcome<SignupRejection>> {
if email == "taken@example.com" {
Ok(ServerSubmitOutcome::rejected(SignupRejection::EmailTaken))
} else {
Ok(ServerSubmitOutcome::accepted())
}
}
fn submit_from_form<EventData: ?Sized + 'static>(
form: FormHandle<SignupForm, SignupError>,
event: Event<EventData>,
) {
form.managed_submit().on_submit_server_fn(
event,
|submitted| async move { submit_signup(submitted.value().email.clone()).await },
|rejection| match rejection {
SignupRejection::EmailTaken => {
SubmitError::field(SignupForm::fields().email(), SignupError::EmailTaken).into()
}
},
|_failure: ServerFnError| SubmitError::form(SignupError::TryAgain).into(),
);
}
}Enums§
- Server
Submit Outcome - Server-side outcome for one submitted form value.
Traits§
- Intent
Submit Binding Fullstack Ext - Dioxus Fullstack-oriented submit helpers for intent-scoped managed submit bindings.
- Submit
Binding Fullstack Ext - Dioxus Fullstack-oriented submit helpers for ordinary managed submit bindings.