From 4ae165172024b9dce5db3664a16db68dc42ba400 Mon Sep 17 00:00:00 2001
From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
Date: Wed, 26 Mar 2025 13:03:20 +1100
Subject: sidebar: notifpane + scroll switch panes
Also placeholder for empty lists (notifs and events)
To switch panes, primary click + scroll
---
scss/sidebar.scss | 9 +++++++
src/modules/bar.tsx | 16 +++++++++---
src/modules/sidebar/dashboard.tsx | 2 +-
src/modules/sidebar/index.tsx | 35 ++++++++++++++++++---------
src/modules/sidebar/modules/notifications.tsx | 28 ++++++++++++++++-----
src/modules/sidebar/modules/upcoming.tsx | 22 ++++++++++++++---
src/modules/sidebar/notifpane.tsx | 7 ++++++
7 files changed, 94 insertions(+), 25 deletions(-)
create mode 100644 src/modules/sidebar/notifpane.tsx
diff --git a/scss/sidebar.scss b/scss/sidebar.scss
index 249f516..8f4d6d7 100644
--- a/scss/sidebar.scss
+++ b/scss/sidebar.scss
@@ -73,6 +73,15 @@
}
}
+ .empty {
+ color: scheme.$subtext0;
+ font-size: lib.s(18);
+
+ .icon {
+ font-size: lib.s(48);
+ }
+ }
+
.user {
@include lib.spacing(15);
diff --git a/src/modules/bar.tsx b/src/modules/bar.tsx
index 85d2add..65a2727 100644
--- a/src/modules/bar.tsx
+++ b/src/modules/bar.tsx
@@ -1,3 +1,4 @@
+import type SideBar from "@/modules/sidebar";
import type { Monitor } from "@/services/monitors";
import Players from "@/services/players";
import Updates from "@/services/updates";
@@ -72,10 +73,19 @@ const togglePopup = (self: JSX.Element, event: Astal.ClickEvent, name: string) =
}
};
+const switchPane = (name: string) => {
+ const sidebar = App.get_window("sidebar") as SideBar | null;
+ if (sidebar) {
+ if (sidebar.visible && sidebar.shown.get() === name) sidebar.hide();
+ else sidebar.show();
+ sidebar.shown.set(name);
+ }
+};
+
const OSIcon = () => (
@@ -446,9 +456,7 @@ const PkgUpdates = () => (
const NotifCount = () => (