From a7d24a82046f17fcfbd6278a5bf9467a220aed3b Mon Sep 17 00:00:00 2001 From: Silberengel Date: Sat, 14 Feb 2026 18:00:04 +0100 Subject: [PATCH] bug-fixes --- src/lib/components/EventMenu.svelte | 47 +- src/lib/modules/feed/FeedPage.svelte | 49 +- src/lib/services/cache/event-cache.ts | 26 + src/lib/services/user-actions.ts | 66 ++- src/lib/types/kind-lookup.ts | 6 + src/lib/types/kind-metadata.ts | 711 +++++++++++++++++++++++++- 6 files changed, 854 insertions(+), 51 deletions(-) diff --git a/src/lib/components/EventMenu.svelte b/src/lib/components/EventMenu.svelte index ae1a68e..4a8e265 100644 --- a/src/lib/components/EventMenu.svelte +++ b/src/lib/components/EventMenu.svelte @@ -14,7 +14,9 @@ isHighlighted, togglePin, toggleBookmark, - toggleHighlight + toggleHighlight, + toggleMute, + isMuted } from '../services/user-actions.js'; import { eventMenuStore } from '../services/event-menu-store.js'; import { sessionManager } from '../services/auth/session-manager.js'; @@ -68,10 +70,12 @@ let currentUserPubkey = $derived(sessionManager.getCurrentPubkey()); let isOwnEvent = $derived(isLoggedIn && currentUserPubkey === event.pubkey); - // Track pin/bookmark/highlight state + // Track pin/bookmark/highlight/mute state let pinnedState = $state(false); let bookmarkedState = $state(false); let highlightedState = $state(false); + let mutedState = $state(false); + let muting = $state(false); let stateUpdateTrigger = $state(0); // Trigger to force state updates // Update state when event changes or when trigger changes @@ -87,6 +91,12 @@ isBookmarked(event.id).then(bookmarked => { bookmarkedState = bookmarked; }); + // Update mute state + if (isLoggedIn && !isOwnEvent) { + isMuted(event.pubkey).then(muted => { + mutedState = muted; + }); + } }); function toggleMenu() { @@ -399,6 +409,22 @@ ttsModalOpen = true; closeMenu(); } + + async function handleMute() { + if (muting || isOwnEvent) return; + muting = true; + try { + await toggleMute(event.pubkey); + // Update state + const newMuted = await isMuted(event.pubkey); + mutedState = newMuted; + } catch (error) { + console.error('Failed to toggle mute:', error); + } finally { + muting = false; + closeMenu(); + } + }
@@ -521,9 +547,24 @@ {/if} - + {#if isLoggedIn && !isOwnEvent} + + {/if} + + + {#if isLoggedIn && !isOwnEvent}