diff --git a/packages/shell/src/document-model.ts b/packages/shell/src/document-model.ts index d9d5a2a78..e4e79ddae 100644 --- a/packages/shell/src/document-model.ts +++ b/packages/shell/src/document-model.ts @@ -36,6 +36,10 @@ type PropChangeOptions = { oldValue: any; }; +const Events = { + IMPORT_SCHEMA: 'shell.document.importSchema', +}; + export default class DocumentModel { private readonly [documentSymbol]: InnerDocumentModel; private readonly [editorSymbol]: Editor; @@ -135,6 +139,7 @@ export default class DocumentModel { */ importSchema(schema: RootSchema) { this[documentSymbol].import(schema); + this[editorSymbol].emit(Events.IMPORT_SCHEMA, schema); } /** @@ -290,4 +295,12 @@ export default class DocumentModel { }, ); } + + /** + * import schema event + * @param fn + */ + onImportSchema(fn: (schema: RootSchema) => void) { + this[editorSymbol].on(Events.IMPORT_SCHEMA, fn as any); + } }