diff options
Diffstat (limited to 'src/view/com/composer/Composer.tsx')
-rw-r--r-- | src/view/com/composer/Composer.tsx | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 45e67d7cb..5c7594d61 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -88,6 +88,30 @@ export const ComposePost = observer(function ComposePost({ autocompleteView.setup() }, [autocompleteView]) + const onEscape = useCallback( + (e: KeyboardEvent) => { + if (e.key === 'Escape') { + store.shell.openModal({ + name: 'confirm', + title: 'Cancel draft', + onPressConfirm: onClose, + onPressCancel: () => { + store.shell.closeModal() + }, + message: "Are you sure you'd like to cancel this draft?", + }) + } + }, + [store.shell, onClose], + ) + + useEffect(() => { + if (isDesktopWeb) { + window.addEventListener('keydown', onEscape) + return () => window.removeEventListener('keydown', onEscape) + } + }, [onEscape]) + const onPressAddLinkCard = useCallback( (uri: string) => { setExtLink({uri, isLoading: true}) |