import { create } from 'zustand'; import { persist } from 'zustand/middleware'; import type { SearchSource } from '../types'; interface BibliographyState { sources: SearchSource[]; addSource: (source: SearchSource) => void; removeSource: (id: number) => void; clearSources: () => void; hasSource: (id: number) => boolean; } export const useBibliographyStore = create()( persist( (set, get) => ({ sources: [], addSource: (source) => { const existing = get().sources.find((s) => s.id === source.id); if (!existing) { set((state) => ({ sources: [...state.sources, source] })); } }, removeSource: (id) => { set((state) => ({ sources: state.sources.filter((s) => s.id !== id), })); }, clearSources: () => set({ sources: [] }), hasSource: (id) => get().sources.some((s) => s.id === id), }), { name: 'bibliography-storage', } ) );