0.5 缩减重构
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import { beforeEach, describe, expect, it } from "vitest";
|
||||
import { useAiAgentUiStore } from "./ai-agent-ui";
|
||||
|
||||
describe("useAiAgentUiStore", () => {
|
||||
beforeEach(() => {
|
||||
useAiAgentUiStore.setState({
|
||||
documentAgentAvailable: false,
|
||||
documentAgentOpen: false,
|
||||
globalAgentOpen: false,
|
||||
});
|
||||
});
|
||||
|
||||
it("全局 AI 开关不依赖页面 AI 可用态", () => {
|
||||
const state = useAiAgentUiStore.getState();
|
||||
|
||||
state.toggleGlobalAgentOpen();
|
||||
expect(useAiAgentUiStore.getState().globalAgentOpen).toBe(true);
|
||||
|
||||
state.toggleGlobalAgentOpen();
|
||||
expect(useAiAgentUiStore.getState().globalAgentOpen).toBe(false);
|
||||
});
|
||||
});
|
||||
@@ -3,16 +3,25 @@
|
||||
import { create } from "zustand";
|
||||
|
||||
type AiAgentUiState = {
|
||||
globalAgentOpen: boolean;
|
||||
documentAgentAvailable: boolean;
|
||||
documentAgentOpen: boolean;
|
||||
setGlobalAgentOpen: (open: boolean) => void;
|
||||
toggleGlobalAgentOpen: () => void;
|
||||
setDocumentAgentAvailable: (available: boolean) => void;
|
||||
setDocumentAgentOpen: (open: boolean) => void;
|
||||
toggleDocumentAgentOpen: () => void;
|
||||
};
|
||||
|
||||
export const useAiAgentUiStore = create<AiAgentUiState>((set, get) => ({
|
||||
globalAgentOpen: false,
|
||||
documentAgentAvailable: false,
|
||||
documentAgentOpen: false,
|
||||
setGlobalAgentOpen: (open) => set({ globalAgentOpen: open }),
|
||||
toggleGlobalAgentOpen: () => {
|
||||
const s = get();
|
||||
set({ globalAgentOpen: !s.globalAgentOpen });
|
||||
},
|
||||
setDocumentAgentAvailable: (available) => set({ documentAgentAvailable: available }),
|
||||
setDocumentAgentOpen: (open) => set({ documentAgentOpen: open }),
|
||||
toggleDocumentAgentOpen: () => {
|
||||
@@ -21,4 +30,3 @@ export const useAiAgentUiStore = create<AiAgentUiState>((set, get) => ({
|
||||
set({ documentAgentOpen: !s.documentAgentOpen });
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
"use client";
|
||||
|
||||
"use client";
|
||||
|
||||
import { create } from "zustand";
|
||||
import type { ReferenceTarget } from "@/types/search";
|
||||
import type { Json } from "@/types/supabase";
|
||||
import type { MediaAsset } from "@/types/media";
|
||||
|
||||
export interface EditorReferenceBridgeResult {
|
||||
blockId: string | null;
|
||||
}
|
||||
|
||||
|
||||
export interface EditorReferenceBridgeResult {
|
||||
blockId: string | null;
|
||||
}
|
||||
|
||||
export interface EditorReferenceBridge {
|
||||
insertInlineReference: (target: ReferenceTarget, alias?: string) => EditorReferenceBridgeResult;
|
||||
insertEmbedReference: (target: ReferenceTarget) => EditorReferenceBridgeResult;
|
||||
@@ -33,13 +33,13 @@ export interface EditorReferenceBridge {
|
||||
replaceWithSnapshot: (blocks: Json) => void;
|
||||
openTableFullScreen?: (tableId: string) => void;
|
||||
}
|
||||
|
||||
interface EditorBridgeState {
|
||||
bridge: EditorReferenceBridge | null;
|
||||
registerBridge: (bridge: EditorReferenceBridge | null) => void;
|
||||
}
|
||||
|
||||
export const useEditorBridgeStore = create<EditorBridgeState>((set) => ({
|
||||
bridge: null,
|
||||
registerBridge: (bridge) => set({ bridge }),
|
||||
}));
|
||||
|
||||
interface EditorBridgeState {
|
||||
bridge: EditorReferenceBridge | null;
|
||||
registerBridge: (bridge: EditorReferenceBridge | null) => void;
|
||||
}
|
||||
|
||||
export const useEditorBridgeStore = create<EditorBridgeState>((set) => ({
|
||||
bridge: null,
|
||||
registerBridge: (bridge) => set({ bridge }),
|
||||
}));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { create } from "zustand";
|
||||
import { persist } from "zustand/middleware";
|
||||
import type { SidebarSectionId } from "@/components/sidebar/types";
|
||||
|
||||
import { create } from "zustand";
|
||||
import { persist } from "zustand/middleware";
|
||||
import type { SidebarSectionId } from "@/components/sidebar/types";
|
||||
|
||||
interface SidebarState {
|
||||
open: boolean;
|
||||
width: number;
|
||||
|
||||
Reference in New Issue
Block a user