import { create } from 'zustand'; import type { Snapshot } from '@/lib/sync/messages'; interface PlayerSessionState { snapshot: Snapshot | null; /** map image data URLs keyed by map id, cached so they don't re-stream */ images: Record; setSnapshot: (s: Snapshot) => void; setImage: (id: string, dataUrl: string) => void; reset: () => void; } /** Ephemeral store holding what a joined player currently sees (never persisted). */ export const usePlayerSessionStore = create()((set) => ({ snapshot: null, images: {}, setSnapshot: (snapshot) => set({ snapshot }), setImage: (id, dataUrl) => set((s) => ({ images: { ...s.images, [id]: dataUrl } })), reset: () => set({ snapshot: null, images: {} }), }));