From b08f53ab46fc763f2d32502c871e66fa63525b74 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 15 Oct 2025 18:49:13 -0500 Subject: [PATCH] Only open block or delete dialog if submitted successfully --- src/components/dms/ConvoMenu.tsx | 2 +- src/components/dms/MessageContextMenu.tsx | 2 +- src/components/moderation/ReportDialog/index.tsx | 7 ++++--- src/components/moderation/ReportDialog/types.ts | 5 ++++- src/screens/Messages/components/RequestButtons.tsx | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index c952c7ae22..0f14276d97 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -123,7 +123,7 @@ let ConvoMenu = ({ message: latestReportableMessage, }} control={reportControl} - onClose={() => { + onAfterSubmit={() => { blockOrDeleteControl.open() }} /> diff --git a/src/components/dms/MessageContextMenu.tsx b/src/components/dms/MessageContextMenu.tsx index 5f81c383ab..8ed56e63b8 100644 --- a/src/components/dms/MessageContextMenu.tsx +++ b/src/components/dms/MessageContextMenu.tsx @@ -180,7 +180,7 @@ export let MessageContextMenu = ({ convoId: convo.convo.id, message, }} - onClose={() => { + onAfterSubmit={() => { blockOrDeleteControl.open() }} /> diff --git a/src/components/moderation/ReportDialog/index.tsx b/src/components/moderation/ReportDialog/index.tsx index b6f749e71d..c45047d328 100644 --- a/src/components/moderation/ReportDialog/index.tsx +++ b/src/components/moderation/ReportDialog/index.tsx @@ -60,8 +60,7 @@ export function ReportDialog( ) const onClose = React.useCallback(() => { logger.metric('reportDialog:close', {}, {statsig: false}) - props.onClose?.() - }, [props]) + }, []) return ( @@ -191,7 +190,9 @@ function Inner(props: ReportDialogProps) { ) // give time for user feedback setTimeout(() => { - props.control.close() + props.control.close(() => { + props.onAfterSubmit?.() + }) }, 1e3) } catch (e: any) { logger.metric('reportDialog:failure', {}, {statsig: false}) diff --git a/src/components/moderation/ReportDialog/types.ts b/src/components/moderation/ReportDialog/types.ts index c5d0f1a7eb..6df3a82ff6 100644 --- a/src/components/moderation/ReportDialog/types.ts +++ b/src/components/moderation/ReportDialog/types.ts @@ -68,5 +68,8 @@ export type ParsedReportSubject = export type ReportDialogProps = { control: Dialog.DialogOuterProps['control'] subject: ParsedReportSubject - onClose?: () => void + /** + * Called if the report was successfully submitted. + */ + onAfterSubmit?: () => void } diff --git a/src/screens/Messages/components/RequestButtons.tsx b/src/screens/Messages/components/RequestButtons.tsx index 1d11fcca74..251f5d33fc 100644 --- a/src/screens/Messages/components/RequestButtons.tsx +++ b/src/screens/Messages/components/RequestButtons.tsx @@ -172,7 +172,7 @@ export function RejectMenu({ message: lastMessage, }} control={reportControl} - onClose={() => { + onAfterSubmit={() => { blockOrDeleteControl.open() }} />