diff options
Diffstat (limited to '')
-rw-r--r-- | assets/style.scss | 27 | ||||
-rw-r--r-- | src/lib.rs | 21 |
2 files changed, 37 insertions, 11 deletions
diff --git a/assets/style.scss b/assets/style.scss index f781976..7bdffa0 100644 --- a/assets/style.scss +++ b/assets/style.scss @@ -143,7 +143,7 @@ p { margin: 0; } -.chats-list, .roster-list { +.chats-list, .roster-list, .settings-sidebar { border-width: 0 2px 0 0; border-color: black; border-style: solid; @@ -155,6 +155,20 @@ p { flex-direction: column; } +.settings-sidebar { + width: 200px; + display: flex; + flex-direction: column; +} + +.settings-sidebar>* { + padding: 8px 16px; +} + +.settings-sidebar>.open, .settings-sidebar>*:hover { + background: #00000060; +} + .chats-list>*, .roster-list>*, .settings .header { padding: 8px 16px; } @@ -604,6 +618,17 @@ p { .settings { width: 75vw; height: 75vh; + display: flex; + flex-direction: column; +} + +.settings-main { + display: flex; + flex: 1 1 auto; +} + +.settings-page { + flex: 1 1 0; } .modal .overlay { @@ -1073,7 +1073,7 @@ pub fn Modal(on_background_click: impl Fn(MouseEvent) + 'static, children: Child } } -#[derive(Clone, Copy, Debug)] +#[derive(Clone, Copy, Debug, PartialEq, Eq)] pub enum SettingsPage { Account, Chat, @@ -1096,17 +1096,17 @@ pub fn Settings() -> impl IntoView { </div> <div class="settings-main"> <div class="settings-sidebar"> - <div on:click=move |_| show_settings.set(Some(SettingsPage::Account))>Account</div> - <div on:click=move |_| show_settings.set(Some(SettingsPage::Chat))>Chat</div> - <div on:click=move |_| show_settings.set(Some(SettingsPage::Privacy))>Privacy</div> - <div on:click=move |_| show_settings.set(Some(SettingsPage::Profile))>Profile</div> + <div class:open=move || *show_settings.read() == Some(SettingsPage::Account) on:click=move |_| show_settings.set(Some(SettingsPage::Account))>Account</div> + <div class:open=move || *show_settings.read() == Some(SettingsPage::Chat) on:click=move |_| show_settings.set(Some(SettingsPage::Chat))>Chat</div> + <div class:open=move || *show_settings.read() == Some(SettingsPage::Privacy) on:click=move |_| show_settings.set(Some(SettingsPage::Privacy))>Privacy</div> + <div class:open=move || *show_settings.read() == Some(SettingsPage::Profile) on:click=move |_| show_settings.set(Some(SettingsPage::Profile))>Profile</div> </div> - <div class="settings-main"> + <div class="settings-page"> {move || if let Some(page) = show_settings.get() { match page { SettingsPage::Account => view! { <div>"account"</div> }.into_any(), SettingsPage::Chat => view! { <div>"chat"</div> }.into_any(), - SettingsPage::Profile => view! { <div>"profile"</div> }.into_any(), + SettingsPage::Profile => view! { <ProfileSettings /> }.into_any(), SettingsPage::Privacy => view! { <div>"privacy"</div> }.into_any(), } } else { @@ -1121,7 +1121,10 @@ pub fn Settings() -> impl IntoView { #[component] pub fn ProfileSettings() -> impl IntoView { - view! {} + view! { + <form> + </form> + } } #[component] @@ -1796,8 +1799,6 @@ where { let store = self.inner.try_get_value().unwrap(); let mut store = store.store.write().unwrap(); - debug!("got store"); - debug!("got store 2"); if let Some((v, count)) = store.get_mut(&key) { *v = value.clone(); *count += 1; |