summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--assets/style.scss11
-rw-r--r--src/components/sidebar.rs20
2 files changed, 31 insertions, 0 deletions
diff --git a/assets/style.scss b/assets/style.scss
index f6e1d55..016c568 100644
--- a/assets/style.scss
+++ b/assets/style.scss
@@ -650,6 +650,17 @@ background: #00000060;
}
}
+.sidebar .behind-hovering {
+ width: 402px;
+ transition: width 0.2s ease-out allow-discrete;
+}
+
+@starting-style {
+ .sidebar .behind-hovering {
+ width: 0;
+ }
+}
+
.overlay {
position: relative;
z-index: 100;
diff --git a/src/components/sidebar.rs b/src/components/sidebar.rs
index 0be31fd..5248a55 100644
--- a/src/components/sidebar.rs
+++ b/src/components/sidebar.rs
@@ -166,6 +166,16 @@ pub fn Sidebar() -> impl IntoView {
{move || match page {
SidebarOpen::Roster => {
view! {
+ {move || {
+ if *open.read() == None
+ && *hovered.read() == Some(SidebarOpen::Roster)
+ {
+ view! { <div class="sidebar-drawer behind-hovering"></div> }
+ .into_any()
+ } else {
+ view! {}.into_any()
+ }
+ }}
<div
class:sidebar-drawer=true
class:sidebar-hovering-drawer=move || {
@@ -180,6 +190,16 @@ pub fn Sidebar() -> impl IntoView {
}
SidebarOpen::Chats => {
view! {
+ {move || {
+ if *open.read() == None
+ && *hovered.read() == Some(SidebarOpen::Chats)
+ {
+ view! { <div class="sidebar-drawer behind-hovering"></div> }
+ .into_any()
+ } else {
+ view! {}.into_any()
+ }
+ }}
<div
class:sidebar-drawer=true
class:sidebar-hovering-drawer=move || {