From 10c21f2a3c902fb2734b61672125c28aca5d8de9 Mon Sep 17 00:00:00 2001 From: Reed Krantz Date: Mon, 12 Jan 2026 19:33:20 -0600 Subject: [PATCH] feat(components): add the EditQuote component --- src/components/edit_quote.rs | 38 ++++++++++++++++++++++++++++++++++++ src/components/mod.rs | 3 +++ 2 files changed, 41 insertions(+) create mode 100644 src/components/edit_quote.rs diff --git a/src/components/edit_quote.rs b/src/components/edit_quote.rs new file mode 100644 index 0000000..6ef8ec7 --- /dev/null +++ b/src/components/edit_quote.rs @@ -0,0 +1,38 @@ +use crate::components::{ + date_picker::{DatePicker, DatePickerInput}, + Input, +}; +use dioxus::prelude::*; + +use time::{macros::offset, OffsetDateTime}; + +#[component] +pub fn EditQuote() -> Element { + let mut quote = use_signal(String::new); + let mut source = use_signal(String::new); + let mut date = use_signal(|| { + Some( + OffsetDateTime::now_local() + .unwrap_or_else(|_| OffsetDateTime::now_utc().to_offset(offset!(-6))) + .date(), + ) + }); + + rsx! { + Input { + oninput: move |e: FormEvent| quote.set(e.value()), + placeholder: "Enter the quote", + value: quote, + } + Input { + oninput: move |e: FormEvent| source.set(e.value()), + placeholder: "Enter who said this", + value: source, + } + DatePicker { + selected_date: date(), + on_value_change: move |v| date.set(v), + DatePickerInput {} + } + } +} diff --git a/src/components/mod.rs b/src/components/mod.rs index 17b6ea7..3c8ab79 100644 --- a/src/components/mod.rs +++ b/src/components/mod.rs @@ -11,6 +11,9 @@ pub use input::Input; mod echo; pub use echo::Echo; +mod edit_quote; +pub use edit_quote::EditQuote; + pub mod calendar; pub mod date_picker; pub mod popover;