import { bind } from "astal"; import { Astal, Gtk } from "astal/gtk3"; import AstalNotifd from "gi://AstalNotifd"; import Notification from "../widgets/notification"; import PopupWindow from "../widgets/popupwindow"; const List = () => ( { const notifd = AstalNotifd.get_default(); const map = new Map(); const addNotification = (notification: AstalNotifd.Notification) => { const notif = () as Notification; notif.connect("destroy", () => map.get(notification.id) === notif && map.delete(notification.id)); map.get(notification.id)?.destroyWithAnims(); map.set(notification.id, notif); self.pack_end( event.button === Astal.MouseButton.MIDDLE && notification.dismiss()} > {notif} , false, false, 0 ); }; notifd .get_notifications() .sort((a, b) => a.time - b.time) .forEach(addNotification); self.hook(notifd, "notified", (_, id) => addNotification(notifd.get_notification(id))); self.hook(notifd, "resolved", (_, id) => map.get(id)?.destroyWithAnims()); }} /> ); export default () => (