Files
mnote/wolai-frontend/src/store/editor-bridge.ts
T
2025-11-23 10:55:04 +08:00

26 lines
780 B
TypeScript

"use client";
import { create } from "zustand";
import type { ReferenceTarget } from "@/types/search";
import type { Json } from "@/types/supabase";
export interface EditorReferenceBridgeResult {
blockId: string | null;
}
export interface EditorReferenceBridge {
insertInlineReference: (target: ReferenceTarget, alias?: string) => EditorReferenceBridgeResult;
insertEmbedReference: (target: ReferenceTarget) => EditorReferenceBridgeResult;
replaceWithSnapshot: (blocks: Json) => void;
}
interface EditorBridgeState {
bridge: EditorReferenceBridge | null;
registerBridge: (bridge: EditorReferenceBridge | null) => void;
}
export const useEditorBridgeStore = create<EditorBridgeState>((set) => ({
bridge: null,
registerBridge: (bridge) => set({ bridge }),
}));