Expand description
Leptos Forms - A comprehensive form management library for Leptos
This library provides a complete solution for building forms in Leptos applications, including form state management, validation, field arrays, event handling, and more.
§Features
- Type-safe forms with compile-time validation
- Reactive state management using Leptos signals
- Event handling system with comprehensive form and field events
- Hook system with React-like hooks for form state management
- Component integration with pre-built form components
- Field arrays and dynamic forms support
- Form persistence with localStorage support
- WASM-powered for high performance
§Quick Start
use leptos::*;
use leptos::prelude::{ElementChild, ClassAttribute};
use leptos_forms_rs::*;
use leptos_forms_rs::core::types::FieldType;
use serde::{Deserialize, Serialize};
#[derive(Clone, Serialize, Deserialize, PartialEq, Debug)]
struct LoginForm {
email: String,
password: String,
}
impl Form for LoginForm {
fn default_values() -> Self {
LoginForm {
email: "".to_string(),
password: "".to_string(),
}
}
fn field_metadata() -> Vec<FieldMetadata> {
vec![
FieldMetadata {
name: "email".to_string(),
field_type: FieldType::Email,
..Default::default()
},
FieldMetadata {
name: "password".to_string(),
field_type: FieldType::Password,
..Default::default()
}
]
}
fn validate(&self) -> Result<(), ValidationErrors> { Ok(()) }
}
#[component]
pub fn LoginPage() -> impl IntoView {
let (form, _submit_callback, _reset_callback) = use_form(LoginForm::default_values());
view! {
<div class="form">
<FormField form=form.clone() name="email".to_string() />
<FormField form=form.clone() name="password".to_string() />
</div>
}
}Re-exports§
pub use core::traits::FormState;pub use core::FieldMetadata;pub use core::Form;pub use core::FormHandle;pub use core::FormSchema;pub use validation::validate_form;pub use validation::ValidationErrors;pub use validation::Validators;pub use error::FieldError;pub use error::FormError;pub use hooks::use_conditional_validation;pub use hooks::use_field_array;pub use hooks::use_field_array_values;pub use hooks::use_field_dirty;pub use hooks::use_field_error;pub use hooks::use_field_touched;pub use hooks::use_field_value;pub use hooks::use_form;pub use hooks::use_form_analytics;pub use hooks::use_form_performance;pub use hooks::use_form_persistence;pub use hooks::use_form_submission;pub use hooks::use_form_validation;pub use hooks::use_form_wizard;pub use hooks::use_real_time_validation;pub use hooks::FieldArrayHandle;pub use components::form_wizard as FormWizard;pub use components::Form as FormComponent;pub use components::FormDebug;pub use components::FormField;pub use components::FormReset;pub use utils::deserialize_form;pub use utils::form_from_json;pub use utils::form_to_json;pub use utils::form_to_map;pub use utils::forms_are_equal;pub use utils::get_field_type;pub use utils::get_form_field_names;pub use utils::get_form_stats;pub use utils::get_required_field_names;pub use utils::has_validation_errors;pub use utils::is_field_required;pub use utils::map_to_form;pub use utils::merge_validation_errors;pub use utils::serialize_form;pub use utils::validate_field_value;pub use utils::validate_form_detailed;pub use utils::FormStats;pub use utils::FormValidationResult;pub use events::EventSystem;pub use events::EventSystemBuilder;pub use events::EventSystemUtils;pub use events::FieldBlurHandler;pub use events::FieldChangeHandler;pub use events::FieldEvent;pub use events::FieldEventType;pub use events::FieldFocusHandler;pub use events::FieldInputHandler;pub use events::FormEvent;pub use events::FormEventType;pub use events::FormResetHandler;pub use events::FormSubmitHandler;pub use devtools::DebugUtilities;pub use devtools::FieldChange;pub use devtools::FieldState;pub use devtools::FormSnapshot;pub use devtools::FormStateInspector;pub use devtools::FormStateSnapshot;pub use devtools::IntegrityCheck;pub use devtools::PerformanceMetrics;pub use devtools::PerformanceMonitor;pub use devtools::SnapshotDiff;
Modules§
- components
- Components module - UI components for the Leptos Forms library
- core
- devtools
- DevTools module - Development tools for form debugging and monitoring
- error
- Error handling module - Comprehensive error management for Leptos Forms
- events
- Event handling system for Leptos Forms
- examples
- Examples module
- hooks
- Hooks module - React-like hooks for form management
- utils
- Utils module - Utility functions for form operations
- validation
- Validation module - Type-safe form validation for Leptos Forms