1 import {EditorFormModal, EditorFormModalDefinition} from "./modals";
2 import {EditorUiContext} from "./core";
5 export class EditorUIManager {
7 protected modalDefinitionsByKey: Record<string, EditorFormModalDefinition> = {};
8 protected context: EditorUiContext|null = null;
10 setContext(context: EditorUiContext) {
11 this.context = context;
14 getContext(): EditorUiContext {
15 if (this.context === null) {
16 throw new Error(`Context attempted to be used without being set`);
22 registerModal(key: string, modalDefinition: EditorFormModalDefinition) {
23 this.modalDefinitionsByKey[key] = modalDefinition;
26 createModal(key: string): EditorFormModal {
27 const modalDefinition = this.modalDefinitionsByKey[key];
28 if (!modalDefinition) {
29 console.error(`Attempted to show modal of key [${key}] but no modal registered for that key`);
32 const modal = new EditorFormModal(modalDefinition);
33 modal.setContext(this.getContext());