Clafoutis / app /frontend /src /store /readerStore.ts
maribakulj
feat(frontend): implement lot 3 minimal Mirador reading workspace
6c47a0b
import { create } from 'zustand'
interface ReaderConfig {
viewMode: 'single' | 'compare'
showMetadata: boolean
}
interface ReaderState {
openManifestUrls: string[]
readerConfig: ReaderConfig
setOpenManifestUrls: (urls: string[]) => void
setViewMode: (mode: ReaderConfig['viewMode']) => void
setShowMetadata: (enabled: boolean) => void
}
export const useReaderStore = create<ReaderState>((set) => ({
openManifestUrls: [],
readerConfig: { viewMode: 'single', showMetadata: true },
setOpenManifestUrls: (openManifestUrls) => set({ openManifestUrls }),
setViewMode: (mode) => set((state) => ({ readerConfig: { ...state.readerConfig, viewMode: mode } })),
setShowMetadata: (enabled) =>
set((state) => ({ readerConfig: { ...state.readerConfig, showMetadata: enabled } })),
}))