2020-09-28 09:37:48 +02:00
|
|
|
import {Registry, RegistryMap} from "../../../events";
|
2020-08-09 18:58:19 +02:00
|
|
|
import "./Controller";
|
2020-09-12 15:49:20 +02:00
|
|
|
import {ModalController} from "../../../ui/react-elements/ModalDefinitions"; /* we've to reference him here, else the client would not */
|
2020-07-20 19:08:13 +02:00
|
|
|
|
2020-09-28 09:37:48 +02:00
|
|
|
export type ControllerFactory = (modal: string, registryMap: RegistryMap, userData: any, uniqueModalId: string) => ModalController;
|
2020-08-08 01:03:19 +02:00
|
|
|
let modalControllerFactory: ControllerFactory;
|
|
|
|
|
|
|
|
export function setExternalModalControllerFactory(factory: ControllerFactory) {
|
|
|
|
modalControllerFactory = factory;
|
|
|
|
}
|
|
|
|
|
2020-09-28 09:37:48 +02:00
|
|
|
export function spawnExternalModal<EventClass extends { [key: string]: any }>(modal: string, registryMap: RegistryMap, userData: any, uniqueModalId?: string) : ModalController {
|
2020-08-08 01:03:19 +02:00
|
|
|
if(typeof modalControllerFactory === "undefined")
|
|
|
|
throw tr("No external modal factory has been set");
|
|
|
|
|
2020-09-28 09:37:48 +02:00
|
|
|
return modalControllerFactory(modal, registryMap, userData, uniqueModalId);
|
2020-07-20 19:08:13 +02:00
|
|
|
}
|