From a2034691096274cc57a25e376fe65eb3b8c2bc0e Mon Sep 17 00:00:00 2001 From: Sami Mazouz Date: Tue, 23 Nov 2021 14:02:14 +0100 Subject: [PATCH] fix: Modal typings complicate inheritance (#3178) --- js/src/common/components/Modal.tsx | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) 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