Ensure forceCloseAllModals also closes priority/static modals (#29706)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
committed by
GitHub
parent
afc8536d1c
commit
60117b92d8
@@ -18,6 +18,7 @@ import defaultDispatcher from "./dispatcher/dispatcher";
|
|||||||
import AsyncWrapper from "./AsyncWrapper";
|
import AsyncWrapper from "./AsyncWrapper";
|
||||||
import { type Defaultize } from "./@types/common";
|
import { type Defaultize } from "./@types/common";
|
||||||
import { type ActionPayload } from "./dispatcher/payloads";
|
import { type ActionPayload } from "./dispatcher/payloads";
|
||||||
|
import { filterBoolean } from "./utils/arrays.ts";
|
||||||
|
|
||||||
const DIALOG_CONTAINER_ID = "mx_Dialog_Container";
|
const DIALOG_CONTAINER_ID = "mx_Dialog_Container";
|
||||||
const STATIC_DIALOG_CONTAINER_ID = "mx_Dialog_StaticContainer";
|
const STATIC_DIALOG_CONTAINER_ID = "mx_Dialog_StaticContainer";
|
||||||
@@ -160,13 +161,16 @@ export class ModalManager extends TypedEventEmitter<ModalManagerEvent, HandlerMa
|
|||||||
* situations like the user logging out of the app.
|
* situations like the user logging out of the app.
|
||||||
*/
|
*/
|
||||||
public forceCloseAllModals(): void {
|
public forceCloseAllModals(): void {
|
||||||
for (const modal of this.modals) {
|
const modals = filterBoolean([...this.modals, this.staticModal, this.priorityModal]);
|
||||||
|
for (const modal of modals) {
|
||||||
modal.deferred?.resolve([]);
|
modal.deferred?.resolve([]);
|
||||||
if (modal.onFinished) modal.onFinished.apply(null);
|
if (modal.onFinished) modal.onFinished.apply(null);
|
||||||
this.emitClosed();
|
this.emitClosed();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.modals = [];
|
this.modals = [];
|
||||||
|
this.staticModal = null;
|
||||||
|
this.priorityModal = null;
|
||||||
this.reRender();
|
this.reRender();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user