diff --git a/js/src/features/attachments/attachment-lightbox.tsx b/js/src/features/attachments/attachment-lightbox.tsx index 98f75e4..9979f38 100644 --- a/js/src/features/attachments/attachment-lightbox.tsx +++ b/js/src/features/attachments/attachment-lightbox.tsx @@ -11,7 +11,7 @@ import { } from "lucide-react"; import { useDownloadUrl } from "@/hooks/use-download-url"; import { Button } from "@/components/ui/button"; -import { usePlaybackStore } from "@/stores/playback-store"; +import { usePlaybackSuspenderStore } from "@/stores/playback-suspender-store"; export interface AttachmentItem { id: string; @@ -114,7 +114,7 @@ export function AttachmentLightbox({ // Suspend stream playback while the lightbox is open. useEffect(() => { if (!isOpen) return; - const { suspend, release } = usePlaybackStore.getState(); + const { suspend, release } = usePlaybackSuspenderStore.getState(); suspend(); return release; }, [isOpen]); diff --git a/js/src/features/particles/stream-view.tsx b/js/src/features/particles/stream-view.tsx index 03f45e6..3e61b21 100644 --- a/js/src/features/particles/stream-view.tsx +++ b/js/src/features/particles/stream-view.tsx @@ -24,7 +24,7 @@ import { StreamPresenceProvider, useStreamPresence, useStreamComposing, useStrea import { ComposingIndicator } from "@/components/composing-indicator"; import { cn } from "@/lib/utils"; import { useMount } from "react-use"; -import { usePlaybackStore } from "@/stores/playback-store"; +import { usePlaybackSuspenderStore } from "@/stores/playback-suspender-store"; function getReactions(particle: Particle): Record | undefined { if (isParticleDeleted(particle)) return undefined; @@ -193,7 +193,7 @@ function StreamViewInner({ path, streamParticle }: StreamViewProps) { const [composeActive, setComposeActive] = useState(false); const [composeStep, setComposeStep] = useState("idle"); - const playbackSuspended = usePlaybackStore((s) => s.suspendCount > 0); + const playbackSuspended = usePlaybackSuspenderStore((s) => s.suspendCount > 0); const playbackBlocked = composeActive || playbackSuspended; const [progress, setProgress] = useState(0); const [fastPlayback, setFastPlayback] = useState(false); diff --git a/js/src/stores/playback-store.ts b/js/src/stores/playback-suspender-store.ts similarity index 80% rename from js/src/stores/playback-store.ts rename to js/src/stores/playback-suspender-store.ts index a33c801..46a1dbf 100644 --- a/js/src/stores/playback-store.ts +++ b/js/src/stores/playback-suspender-store.ts @@ -5,13 +5,13 @@ import { create } from "zustand"; * `suspend()` on mount and `release()` on unmount. Stream playback is suspended * whenever `suspendCount > 0`. */ -interface PlaybackState { +interface PlaybackSuspenderState { suspendCount: number; suspend: () => void; release: () => void; } -export const usePlaybackStore = create((set) => ({ +export const usePlaybackSuspenderStore = create((set) => ({ suspendCount: 0, suspend: () => set((s) => ({ suspendCount: s.suspendCount + 1 })), release: () => set((s) => ({ suspendCount: Math.max(0, s.suspendCount - 1) })),