feat: MetonaAI Desktop 初始项目
- Electron + React + TypeScript 架构 - 三栏布局: Sidebar | ChatPanel | DetailPanel - 9 个内置工具 (文件系统/网络/记忆/命令) - SQLite 持久化 (better-sqlite3) - MUI 暗色/亮色主题系统 - Agent Loop ReAct 状态机引擎 - DeepSeek / Agnes AI / Ollama Provider 适配器 - MCP 协议集成 - 系统托盘 + 全局快捷键 - Tailwind CSS v4 + Tailwind Merge - 修复: Sidebar 缺失 TextField 导入导致黑屏
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* Zustand Store — UI 状态管理
|
||||
*
|
||||
* 主题、设置弹窗、引导向导等全局 UI 状态。
|
||||
*/
|
||||
|
||||
import { create } from 'zustand';
|
||||
|
||||
export type ThemeMode = 'dark' | 'light' | 'auto';
|
||||
|
||||
interface UIState {
|
||||
// 主题
|
||||
theme: ThemeMode;
|
||||
resolvedTheme: 'dark' | 'light';
|
||||
|
||||
// 弹窗
|
||||
settingsOpen: boolean;
|
||||
onboardingCompleted: boolean;
|
||||
|
||||
// Actions
|
||||
setTheme: (theme: ThemeMode) => void;
|
||||
setResolvedTheme: (theme: 'dark' | 'light') => void;
|
||||
openSettings: () => void;
|
||||
closeSettings: () => void;
|
||||
setOnboardingCompleted: (completed: boolean) => void;
|
||||
}
|
||||
|
||||
export const useUIStore = create<UIState>((set) => ({
|
||||
theme: 'auto',
|
||||
resolvedTheme: 'dark',
|
||||
settingsOpen: false,
|
||||
onboardingCompleted: false,
|
||||
|
||||
setTheme: (theme) => set({ theme }),
|
||||
setResolvedTheme: (resolvedTheme) => set({ resolvedTheme }),
|
||||
openSettings: () => set({ settingsOpen: true }),
|
||||
closeSettings: () => set({ settingsOpen: false }),
|
||||
setOnboardingCompleted: (completed) => set({ onboardingCompleted: completed }),
|
||||
}));
|
||||
Reference in New Issue
Block a user