Files
mnote/wolai-frontend/src/lib/events.ts
T

31 lines
910 B
TypeScript

/**
* 侧边栏与编辑区之间的轻量事件总线
*/
export const ASSETS_CHANGED_EVENT = "wolai:assets-changed";
export const DOCUMENTS_CHANGED_EVENT = "wolai:documents-changed";
type AssetsChangedPayload = {
docId?: string;
asset?: unknown;
assetIds?: string[];
mindmapDeleted?: boolean;
mindmapAssetIds?: string[];
};
export function emitAssetsChanged(
docId?: string,
asset?: unknown,
assetIds?: string[],
mindmapDeleted?: boolean,
mindmapAssetIds?: string[],
) {
if (typeof window === "undefined") return;
const detail: AssetsChangedPayload = { docId, asset, assetIds, mindmapDeleted, mindmapAssetIds };
window.dispatchEvent(new CustomEvent(ASSETS_CHANGED_EVENT, { detail }));
}
export function emitDocumentsChanged(docId?: string) {
if (typeof window === "undefined") return;
window.dispatchEvent(new CustomEvent(DOCUMENTS_CHANGED_EVENT, { detail: { docId } }));
}