import { create } from "zustand"; /** * Overlays that should pause stream playback (e.g. attachment lightbox) call * `suspend()` on mount and `release()` on unmount. Stream playback is suspended * whenever `suspendCount > 0`. */ interface PlaybackSuspenderState { suspendCount: number; suspend: () => void; release: () => void; } export const usePlaybackSuspenderStore = create((set) => ({ suspendCount: 0, suspend: () => set((s) => ({ suspendCount: s.suspendCount + 1 })), release: () => set((s) => ({ suspendCount: Math.max(0, s.suspendCount - 1) })), }));