From b4d54e3eb924bb51f3f1e27e51b38f58480d5763 Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Fri, 9 Jan 2026 09:44:24 -0500 Subject: Add button to mute/unmute account --- src/routes/(app)/dm/+page.svelte | 81 ++++++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 27 deletions(-) (limited to 'src/routes') diff --git a/src/routes/(app)/dm/+page.svelte b/src/routes/(app)/dm/+page.svelte index 336733e0..a8da9538 100644 --- a/src/routes/(app)/dm/+page.svelte +++ b/src/routes/(app)/dm/+page.svelte @@ -10,7 +10,7 @@ import { getMessageRumours } from '$lib/nip17'; import * as libnip17 from '$lib/nip17'; import { npubEncode, decode } from 'nostr-tools/nip19'; - import { mutedAccounts } from '$lib/nip51'; + import { mute, unmute, mutedAccounts } from '$lib/nip51'; import { sign, getPrivateKey, pTagKeys } from '$lib/nostr'; import { t } from "$lib/translations"; import { theme } from "$lib/store"; @@ -18,9 +18,6 @@ let { data } = $props(); const { user } = data; - let muted = $state(new Set()); - mutedAccounts(user).then((m) => muted = m); - /// chat selection const usernameFromPubkey = async (pubkey: string): string => { const response = await fetch(`/api/users/${pubkey}`); @@ -260,6 +257,18 @@ } relayWarningShown = false; }); + + let muted = $state(new Set()); + mutedAccounts(user).then((m) => muted = m); + + const toggleMute = async (pubkey: string) => { + if (muted && muted.has(pubkey)) { + await unmute(user, pubkey); + } else { + await mute(user, pubkey, false); + } + muted = await mutedAccounts(user); + }