bar: unread -> notif count
There technically is no unread cause they only disappear when swiped, also notif count makes more sense
This commit is contained in:
parent
9e32cd4b61
commit
c0a05f48b0
2 changed files with 27 additions and 54 deletions
|
|
@ -92,7 +92,7 @@
|
||||||
color: scheme.$blue;
|
color: scheme.$blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.unread {
|
.notif-count {
|
||||||
color: scheme.$mauve;
|
color: scheme.$mauve;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -389,9 +389,7 @@ const PkgUpdates = () => (
|
||||||
</button>
|
</button>
|
||||||
);
|
);
|
||||||
|
|
||||||
const Unread = () => {
|
const NotifCount = () => (
|
||||||
const unreadCount = Variable(0);
|
|
||||||
return (
|
|
||||||
<button
|
<button
|
||||||
onClick={(self, event) => {
|
onClick={(self, event) => {
|
||||||
if (event.button === Astal.MouseButton.PRIMARY) {
|
if (event.button === Astal.MouseButton.PRIMARY) {
|
||||||
|
|
@ -400,48 +398,23 @@ const Unread = () => {
|
||||||
if (popup.visible) popup.hide();
|
if (popup.visible) popup.hide();
|
||||||
else popup.popup_at_widget(self, event);
|
else popup.popup_at_widget(self, event);
|
||||||
}
|
}
|
||||||
} else if (event.button === Astal.MouseButton.SECONDARY) unreadCount.set(0);
|
}
|
||||||
}}
|
}}
|
||||||
setup={self =>
|
setup={self =>
|
||||||
setupCustomTooltip(
|
setupCustomTooltip(
|
||||||
self,
|
self,
|
||||||
bind(unreadCount).as(n => `${n} unread notification${n === 1 ? "" : "s"}`)
|
bind(AstalNotifd.get_default(), "notifications").as(
|
||||||
|
n => `${n.length} notification${n.length === 1 ? "" : "s"}`
|
||||||
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<box className="module unread">
|
<box className="module notif-count">
|
||||||
<label className="icon" label="info" />
|
<label className="icon" label="info" />
|
||||||
<label
|
<label label={bind(AstalNotifd.get_default(), "notifications").as(n => String(n.length))} />
|
||||||
label={bind(unreadCount).as(String)}
|
|
||||||
setup={self => {
|
|
||||||
const notifd = AstalNotifd.get_default();
|
|
||||||
let notifsOpen = false;
|
|
||||||
let unread = new Set<number>();
|
|
||||||
self.hook(unreadCount, (_, u) => u === 0 && unread.clear());
|
|
||||||
|
|
||||||
self.hook(notifd, "notified", (_, id, replaced) => {
|
|
||||||
if (!notifsOpen && !replaced) {
|
|
||||||
unread.add(id);
|
|
||||||
unreadCount.set(unread.size);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
self.hook(notifd, "resolved", (_, id) => {
|
|
||||||
if (unread.delete(id)) {
|
|
||||||
unreadCount.set(unread.size);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
self.hook(App, "window-toggled", (_, window) => {
|
|
||||||
if (window.name === "notifications") {
|
|
||||||
notifsOpen = window.visible;
|
|
||||||
if (notifsOpen) unreadCount.set(0);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</box>
|
</box>
|
||||||
</button>
|
</button>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
const DateTime = () => (
|
const DateTime = () => (
|
||||||
<box className="module date-time">
|
<box className="module date-time">
|
||||||
|
|
@ -501,7 +474,7 @@ export default ({ monitor }: { monitor: Monitor }) => (
|
||||||
<Tray />
|
<Tray />
|
||||||
<StatusIcons />
|
<StatusIcons />
|
||||||
<PkgUpdates />
|
<PkgUpdates />
|
||||||
<Unread />
|
<NotifCount />
|
||||||
<DateTime />
|
<DateTime />
|
||||||
<Power />
|
<Power />
|
||||||
</box>
|
</box>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue