diff --git a/native/chat/chat-input-bar.react.js b/native/chat/chat-input-bar.react.js --- a/native/chat/chat-input-bar.react.js +++ b/native/chat/chat-input-bar.react.js @@ -894,7 +894,9 @@ this.unblockNavigation(); navigation.dispatch(action); }; - exitEditAlert(unblockAndDispatch); + exitEditAlert({ + onDiscard: unblockAndDispatch, + }); return false; }; @@ -939,7 +941,9 @@ this.exitEditMode(); return; } - exitEditAlert(this.exitEditMode); + exitEditAlert({ + onDiscard: this.exitEditMode, + }); }; scrollToEditedMessage = () => { @@ -980,7 +984,9 @@ saveExit(); return; } - exitEditAlert(saveExit); + exitEditAlert({ + onDiscard: saveExit, + }); }; onPressJoin = () => { diff --git a/native/chat/text-message-tooltip-modal.react.js b/native/chat/text-message-tooltip-modal.react.js --- a/native/chat/text-message-tooltip-modal.react.js +++ b/native/chat/text-message-tooltip-modal.react.js @@ -83,7 +83,9 @@ }; const { editedMessage, isEditedMessageChanged } = inputState.editState; if (isEditedMessageChanged && editedMessage) { - exitEditAlert(enterEditMode); + exitEditAlert({ + onDiscard: enterEditMode, + }); } else { enterEditMode(); } diff --git a/native/utils/edit-messages-utils.js b/native/utils/edit-messages-utils.js --- a/native/utils/edit-messages-utils.js +++ b/native/utils/edit-messages-utils.js @@ -2,7 +2,13 @@ import Alert from 'react-native/Libraries/Alert/Alert.js'; -function exitEditAlert(onDiscard: () => void): void { +type ExitAlertOptions = { + onDiscard: () => void, + onContinueEditing?: () => void, +}; + +function exitEditAlert(options: ExitAlertOptions): void { + const { onDiscard, onContinueEditing } = options; Alert.alert( 'Discard changes?', 'You have unsaved changes which will be discarded if you navigate away.', @@ -10,13 +16,12 @@ { text: 'Continue editing', style: 'cancel', + onPress: onContinueEditing, }, { text: 'Discard edit', style: 'destructive', - onPress: () => { - onDiscard(); - }, + onPress: onDiscard, }, ], );