Files
mnote/wolai-frontend/src/store/ai-agent-ui.ts
T

51 lines
1.5 KiB
TypeScript
Raw Normal View History

2026-01-10 23:08:56 +08:00
"use client";
import { create } from "zustand";
type AiAgentUiState = {
2026-04-13 19:21:42 +08:00
globalAgentOpen: boolean;
globalAgentActivated: boolean;
2026-01-10 23:08:56 +08:00
documentAgentAvailable: boolean;
documentAgentOpen: boolean;
documentAgentActivated: boolean;
2026-04-13 19:21:42 +08:00
setGlobalAgentOpen: (open: boolean) => void;
toggleGlobalAgentOpen: () => void;
2026-01-10 23:08:56 +08:00
setDocumentAgentAvailable: (available: boolean) => void;
setDocumentAgentOpen: (open: boolean) => void;
toggleDocumentAgentOpen: () => void;
};
export const useAiAgentUiStore = create<AiAgentUiState>((set, get) => ({
2026-04-13 19:21:42 +08:00
globalAgentOpen: false,
globalAgentActivated: false,
2026-01-10 23:08:56 +08:00
documentAgentAvailable: false,
documentAgentOpen: false,
documentAgentActivated: false,
setGlobalAgentOpen: (open) =>
set((state) => ({
globalAgentOpen: open,
globalAgentActivated: state.globalAgentActivated || open,
})),
2026-04-13 19:21:42 +08:00
toggleGlobalAgentOpen: () => {
const s = get();
set({
globalAgentOpen: !s.globalAgentOpen,
globalAgentActivated: s.globalAgentActivated || !s.globalAgentOpen,
});
2026-04-13 19:21:42 +08:00
},
2026-01-10 23:08:56 +08:00
setDocumentAgentAvailable: (available) => set({ documentAgentAvailable: available }),
setDocumentAgentOpen: (open) =>
set((state) => ({
documentAgentOpen: open,
documentAgentActivated: state.documentAgentActivated || open,
})),
2026-01-10 23:08:56 +08:00
toggleDocumentAgentOpen: () => {
const s = get();
if (!s.documentAgentAvailable) return;
set({
documentAgentOpen: !s.documentAgentOpen,
documentAgentActivated: s.documentAgentActivated || !s.documentAgentOpen,
});
2026-01-10 23:08:56 +08:00
},
}));