aboutsummaryrefslogtreecommitdiff
path: root/.config/ags/widget/notifications/Notification.ts
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2025-08-30 19:22:59 +0200
committersrdusr <trevorgray@srdusr.com>2025-08-30 19:22:59 +0200
commit19120d4f9761c67d99ed1ce3da6084b83f5a49c9 (patch)
treef234cad1bdad88114a63c9702144da487024967a /.config/ags/widget/notifications/Notification.ts
parent5928998af5404ae2be84c6cecc10ebf84bd3f3ed (diff)
downloaddotfiles-19120d4f9761c67d99ed1ce3da6084b83f5a49c9.tar.gz
dotfiles-19120d4f9761c67d99ed1ce3da6084b83f5a49c9.zip
Linux-specific dotfiles
Diffstat (limited to '.config/ags/widget/notifications/Notification.ts')
-rw-r--r--.config/ags/widget/notifications/Notification.ts138
1 files changed, 0 insertions, 138 deletions
diff --git a/.config/ags/widget/notifications/Notification.ts b/.config/ags/widget/notifications/Notification.ts
deleted file mode 100644
index c1c8dd8..0000000
--- a/.config/ags/widget/notifications/Notification.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-import { type Notification } from "types/service/notifications"
-import GLib from "gi://GLib"
-import icons from "lib/icons"
-
-const time = (time: number, format = "%H:%M") => GLib.DateTime
- .new_from_unix_local(time)
- .format(format)
-
-const NotificationIcon = ({ app_entry, app_icon, image }: Notification) => {
- if (image) {
- return Widget.Box({
- vpack: "start",
- hexpand: false,
- class_name: "icon img",
- css: `
- background-image: url("${image}");
- background-size: cover;
- background-repeat: no-repeat;
- background-position: center;
- min-width: 78px;
- min-height: 78px;
- `,
- })
- }
-
- let icon = icons.fallback.notification
- if (Utils.lookUpIcon(app_icon))
- icon = app_icon
-
- if (Utils.lookUpIcon(app_entry || ""))
- icon = app_entry || ""
-
- return Widget.Box({
- vpack: "start",
- hexpand: false,
- class_name: "icon",
- css: `
- min-width: 78px;
- min-height: 78px;
- `,
- child: Widget.Icon({
- icon,
- size: 58,
- hpack: "center", hexpand: true,
- vpack: "center", vexpand: true,
- }),
- })
-}
-
-export default (notification: Notification) => {
- const content = Widget.Box({
- class_name: "content",
- children: [
- NotificationIcon(notification),
- Widget.Box({
- hexpand: true,
- vertical: true,
- children: [
- Widget.Box({
- children: [
- Widget.Label({
- class_name: "title",
- xalign: 0,
- justification: "left",
- hexpand: true,
- max_width_chars: 24,
- truncate: "end",
- wrap: true,
- label: notification.summary.trim(),
- use_markup: true,
- }),
- Widget.Label({
- class_name: "time",
- vpack: "start",
- label: time(notification.time),
- }),
- Widget.Button({
- class_name: "close-button",
- vpack: "start",
- child: Widget.Icon("window-close-symbolic"),
- on_clicked: notification.close,
- }),
- ],
- }),
- Widget.Label({
- class_name: "description",
- hexpand: true,
- use_markup: true,
- xalign: 0,
- justification: "left",
- label: notification.body.trim(),
- max_width_chars: 24,
- wrap: true,
- }),
- ],
- }),
- ],
- })
-
- const actionsbox = notification.actions.length > 0 ? Widget.Revealer({
- transition: "slide_down",
- child: Widget.EventBox({
- child: Widget.Box({
- class_name: "actions horizontal",
- children: notification.actions.map(action => Widget.Button({
- class_name: "action-button",
- on_clicked: () => notification.invoke(action.id),
- hexpand: true,
- child: Widget.Label(action.label),
- })),
- }),
- }),
- }) : null
-
- const eventbox = Widget.EventBox({
- vexpand: false,
- on_primary_click: notification.dismiss,
- on_hover() {
- if (actionsbox)
- actionsbox.reveal_child = true
- },
- on_hover_lost() {
- if (actionsbox)
- actionsbox.reveal_child = true
-
- notification.dismiss()
- },
- child: Widget.Box({
- vertical: true,
- children: actionsbox ? [content, actionsbox] : [content],
- }),
- })
-
- return Widget.Box({
- class_name: `notification ${notification.urgency}`,
- child: eventbox,
- })
-}