From ebe19168c26fb43c20738004836a3b858e203d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Brandner?= Date: Thu, 24 Jun 2021 10:39:45 +0200 Subject: [PATCH] Add allowClose to payload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Šimon Brandner --- src/dispatcher/payloads/SetRightPanelPhasePayload.ts | 5 +++++ src/stores/RightPanelStore.ts | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/dispatcher/payloads/SetRightPanelPhasePayload.ts b/src/dispatcher/payloads/SetRightPanelPhasePayload.ts index a4dcb8cfe1..ea997e4ed1 100644 --- a/src/dispatcher/payloads/SetRightPanelPhasePayload.ts +++ b/src/dispatcher/payloads/SetRightPanelPhasePayload.ts @@ -27,6 +27,11 @@ export interface SetRightPanelPhasePayload extends ActionPayload { phase: RightPanelPhases; refireParams?: SetRightPanelPhaseRefireParams; + + /** + * By default SetRightPanelPhase can close the panel, this allows overriding that behaviour + */ + allowClose?: boolean; } export interface SetRightPanelPhaseRefireParams { diff --git a/src/stores/RightPanelStore.ts b/src/stores/RightPanelStore.ts index c539fcdb40..2bad0572b1 100644 --- a/src/stores/RightPanelStore.ts +++ b/src/stores/RightPanelStore.ts @@ -161,6 +161,7 @@ export default class RightPanelStore extends Store { case Action.SetRightPanelPhase: { let targetPhase = payload.phase; let refireParams = payload.refireParams; + const allowClose = payload.allowClose ?? true; // redirect to EncryptionPanel if there is an ongoing verification request if (targetPhase === RightPanelPhases.RoomMemberInfo && payload.refireParams) { const {member} = payload.refireParams; @@ -192,7 +193,7 @@ export default class RightPanelStore extends Store { }); } } else { - if (targetPhase === this.state.lastRoomPhase && !refireParams) { + if (targetPhase === this.state.lastRoomPhase && !refireParams && allowClose) { this.setState({ showRoomPanel: !this.state.showRoomPanel, previousPhase: null,