0.5 缩减重构

This commit is contained in:
lix-2026
2026-04-13 19:21:42 +08:00
parent af92c4b149
commit 71fb1aee7e
2023 changed files with 21113 additions and 394493 deletions
@@ -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);
});
});
+9 -1
View File
@@ -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 });
},
}));
+17 -17
View File
@@ -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 }),
}));
+4 -4
View File
@@ -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;