From 5f5edccaf327727662db027b9fc4cdf86365e20b Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Sat, 24 May 2025 12:03:57 +0100 Subject: feat: modal --- src/lib.rs | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 81 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 570d2f6..92c764d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,7 +20,7 @@ use futures::stream::StreamExt; use indexmap::IndexMap; use jid::JID; use leptos::{ - ev::{Event, KeyboardEvent, SubmitEvent}, + ev::{Event, KeyboardEvent, MouseEvent, SubmitEvent}, html::{self, Div, Input, Pre, Textarea}, prelude::*, tachys::{dom::document, reactive_graph::bind::GetValue}, @@ -633,6 +633,8 @@ fn Macaw( let open_chats = Store::new(OpenChatsPanel::default()); provide_context(open_chats); + let show_settings = RwSignal::new(None::); + provide_context(show_settings); let user_presences = Store::new(UserPresences::new()); provide_context(user_presences); @@ -740,6 +742,11 @@ fn Macaw( // + {move || if let Some(_) = *show_settings.read() { + view! { }.into_any() + } else { + view! {}.into_any() + }} } } @@ -902,7 +909,7 @@ pub fn PersonalStatus() -> impl IntoView { if open { view! { - + }.into_any() } else { @@ -915,7 +922,8 @@ pub fn PersonalStatus() -> impl IntoView { } #[component] -pub fn PersonalStatusMenu(user: Store) -> impl IntoView { +pub fn PersonalStatusMenu(user: Store, set_open: WriteSignal) -> impl IntoView { + let show_settings: RwSignal> = use_context().unwrap(); let user_presences: Store = use_context().expect("no user presence store"); let client = use_context::().expect("client not in context"); @@ -1019,10 +1027,16 @@ pub fn PersonalStatusMenu(user: Store) -> impl IntoView {
-