24 lines
822 B
TypeScript
24 lines
822 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;
|
||
|
|
};
|
||
|
|
|
||
|
|
export function emitAssetsChanged(docId?: string, asset?: unknown, assetIds?: string[], mindmapDeleted?: boolean) {
|
||
|
|
if (typeof window === "undefined") return;
|
||
|
|
const detail: AssetsChangedPayload = { docId, asset, assetIds, mindmapDeleted };
|
||
|
|
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 } }));
|
||
|
|
}
|