Initial commit

This commit is contained in:
史悦
2026-02-02 18:30:58 +08:00
commit ae1ca8bfaa
40 changed files with 10900 additions and 0 deletions

42
src/stores/useAppStore.ts Normal file
View File

@@ -0,0 +1,42 @@
import { create } from 'zustand'
import { persist } from 'zustand/middleware'
interface AppState {
// UI状态
sidebarOpen: boolean
darkMode: boolean
searchQuery: string
// 操作
toggleSidebar: () => void
setSidebarOpen: (open: boolean) => void
toggleDarkMode: () => void
setDarkMode: (dark: boolean) => void
setSearchQuery: (query: string) => void
}
export const useAppStore = create<AppState>()(
persist(
(set) => ({
// 初始状态
sidebarOpen: true,
darkMode: false,
searchQuery: '',
// 操作方法
toggleSidebar: () => set((state) => ({ sidebarOpen: !state.sidebarOpen })),
setSidebarOpen: (open) => set({ sidebarOpen: open }),
toggleDarkMode: () => set((state) => ({ darkMode: !state.darkMode })),
setDarkMode: (dark) => set({ darkMode: dark }),
setSearchQuery: (query) => set({ searchQuery: query }),
}),
{
name: 'ittoview-app-storage',
partialize: (state) => ({
sidebarOpen: state.sidebarOpen,
darkMode: state.darkMode,
// searchQuery 不持久化到 localStorage刷新后重置
}),
}
)
)