use leptos::View; use super::{ControlRenderData, VanityControlBuilder, VanityControlData}; use crate::{ form::{FormBuilder, FormData}, styles::FormStyle, }; #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] pub struct SubmitData { pub(crate) text: String, } impl VanityControlData for SubmitData { fn build_control(fs: &FS, control: ControlRenderData) -> View { fs.submit(control) } } impl FormBuilder { pub fn submit( self, builder: impl Fn(VanityControlBuilder) -> VanityControlBuilder, ) -> Self { self.new_vanity(builder) } } impl VanityControlBuilder { pub fn text(mut self, text: impl ToString) -> Self { self.data.text = text.to_string(); self } }