From 5cb22d0bed89f97760829259031f0b96497051c6 Mon Sep 17 00:00:00 2001 From: Matthew Remmel Date: Tue, 23 Sep 2025 10:25:11 -0400 Subject: [PATCH] Add checkboxes for badge/sound settings --- src/app/components/Alerts.svelte | 44 +++++++++++++++++++++++++++----- src/app/core/state.ts | 12 +++++++++ 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/src/app/components/Alerts.svelte b/src/app/components/Alerts.svelte index 8516f54e6..fa84626d9 100644 --- a/src/app/components/Alerts.svelte +++ b/src/app/components/Alerts.svelte @@ -10,7 +10,15 @@ import AlertItem from "@app/components/AlertItem.svelte" import {pushModal} from "@app/util/modal" import {pushToast} from "@app/util/toast" - import {alerts, dmAlert, deriveAlertStatus, userInboxRelays, getAlertFeed} from "@app/core/state" + import { + alerts, + dmAlert, + deriveAlertStatus, + userInboxRelays, + getAlertFeed, + showUnreadBadge, + playAlertSound, + } from "@app/core/state" import {deleteAlert, createDmAlert} from "@app/core/commands" type Props = { @@ -42,11 +50,11 @@ const uncheckDmAlert = async (message: string) => { await sleep(100) - toggle.checked = false + directMessagesNotificationToggle.checked = false pushToast({theme: "error", message}) } - const onToggle = async () => { + const onDirectMessagesNotificationToggle = async () => { if ($dmAlert) { deleteAlert($dmAlert) } else { @@ -64,7 +72,15 @@ } } - let toggle: HTMLInputElement + const onShowBadgeOnUnreadToggle = async () => { + $showUnreadBadge = !$showUnreadBadge + } + + const onDirectMessagesNotificationSoundToggle = async () => { + $playAlertSound = !$playAlertSound + } + + let directMessagesNotificationToggle: HTMLInputElement
@@ -93,9 +109,25 @@ + oninput={onDirectMessagesNotificationToggle} /> +
+
+

Show badge for unread direct messages

+ +
+
+

Play sound for new direct messages

+
{#if $dmStatus} {@const status = getTagValue("status", $dmStatus.tags) || "error"} diff --git a/src/app/core/state.ts b/src/app/core/state.ts index 3243818c3..9fd97e5f1 100644 --- a/src/app/core/state.ts +++ b/src/app/core/state.ts @@ -425,6 +425,18 @@ export const dmAlert = derived(alerts, $alerts => }), ) +export const showUnreadBadge = synced({ + key: "showUnreadBadge", + defaultValue: true, + storage: preferencesStorageProvider, +}) + +export const playAlertSound = synced({ + key: "playAlertSound", + defaultValue: true, + storage: preferencesStorageProvider, +}) + // Alert Statuses export type AlertStatus = {