import { create } from 'zustand' type ReferenceTab = 'setting' | 'outline' | 'inspiration' interface ReferenceState { open: boolean pinned: boolean tab: ReferenceTab query: string pinnedIds: string[] setOpen: (open: boolean) => void setPinned: (pinned: boolean) => void setTab: (tab: ReferenceTab) => void setQuery: (query: string) => void togglePin: (id: string) => void } export const useReferenceStore = create((set, get) => ({ open: false, pinned: false, tab: 'setting', query: '', pinnedIds: [], setOpen: (open) => { if (!open && get().pinned) return set({ open }) }, setPinned: (pinned) => set({ pinned }), setTab: (tab) => set({ tab }), setQuery: (query) => set({ query }), togglePin: (id) => { const pinned = get().pinnedIds set({ pinnedIds: pinned.includes(id) ? pinned.filter((x) => x !== id) : [...pinned, id] }) } }))