diff --git a/js/src/common/components/Modal.tsx b/js/src/common/components/Modal.tsx index 96ad1ceb1..0a7ed743d 100644 --- a/js/src/common/components/Modal.tsx +++ b/js/src/common/components/Modal.tsx @@ -9,7 +9,7 @@ import type RequestError from '../utils/RequestError'; import type ModalManager from './ModalManager'; import fireDebugWarning from '../helpers/fireDebugWarning'; -interface IInternalModalAttrs { +export interface IInternalModalAttrs { state: ModalManagerState; animateShow: ModalManager['animateShow']; animateHide: ModalManager['animateHide']; @@ -19,7 +19,7 @@ interface IInternalModalAttrs { * The `Modal` component displays a modal dialog, wrapped in a form. Subclasses * should implement the `className`, `title`, and `content` methods. */ -export default abstract class Modal extends Component { +export default abstract class Modal extends Component { /** * Determine whether or not the modal should be dismissible via an 'x' button. */ @@ -32,7 +32,7 @@ export default abstract class Modal extends Component) { + oninit(vnode: Mithril.VnodeDOM) { super.oninit(vnode); // TODO: [Flarum 2.0] Remove the code below. @@ -57,13 +57,13 @@ export default abstract class Modal extends Component) { + oncreate(vnode: Mithril.VnodeDOM) { super.oncreate(vnode); this.attrs.animateShow(() => this.onready()); } - onbeforeremove(vnode: Mithril.VnodeDOM): Promise | void { + onbeforeremove(vnode: Mithril.VnodeDOM): Promise | void { super.onbeforeremove(vnode); // If the global modal state currently contains a modal, @@ -78,6 +78,9 @@ export default abstract class Modal extends Component extends Component