import type { NotesLayoutMode, NotesViewType } from '@/components/notes-list-views' export const NOTES_LAYOUT_COOKIE = 'memento-notes-layout' export const NOTES_VIEW_TYPE_COOKIE = 'memento-notes-view-type' export const NOTES_LAYOUT_STORAGE_KEY = 'memento-notes-layout' export const NOTES_VIEW_TYPE_STORAGE_KEY = 'memento-notes-view-type' const LAYOUT_VALUES: NotesLayoutMode[] = ['grid', 'list', 'table', 'kanban', 'gallery'] const VIEW_TYPE_VALUES: NotesViewType[] = ['notes', 'tasks'] export function parseNotesLayoutMode(value: string | undefined | null): NotesLayoutMode { if (value && (LAYOUT_VALUES as string[]).includes(value)) { const mode = value as NotesLayoutMode if (mode === 'gallery') return 'grid' return mode } return 'list' } export function parseNotesViewType(value: string | undefined | null): NotesViewType { if (value && (VIEW_TYPE_VALUES as string[]).includes(value)) return value as NotesViewType return 'notes' } export function setNotesLayoutPreference(layout: NotesLayoutMode) { if (typeof window === 'undefined') return localStorage.setItem(NOTES_LAYOUT_STORAGE_KEY, layout) document.cookie = `${NOTES_LAYOUT_COOKIE}=${layout}; path=/; max-age=31536000; SameSite=Lax` } export function setNotesViewTypePreference(viewType: NotesViewType) { if (typeof window === 'undefined') return localStorage.setItem(NOTES_VIEW_TYPE_STORAGE_KEY, viewType) document.cookie = `${NOTES_VIEW_TYPE_COOKIE}=${viewType}; path=/; max-age=31536000; SameSite=Lax` }