diff options
Diffstat (limited to 'src/view/com/composer')
-rw-r--r-- | src/view/com/composer/Composer.tsx | 24 | ||||
-rw-r--r-- | src/view/com/composer/text-input/TextInput.web.tsx | 2 |
2 files changed, 26 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}) diff --git a/src/view/com/composer/text-input/TextInput.web.tsx b/src/view/com/composer/text-input/TextInput.web.tsx index 4abedb3e2..b56d306e2 100644 --- a/src/view/com/composer/text-input/TextInput.web.tsx +++ b/src/view/com/composer/text-input/TextInput.web.tsx @@ -4,6 +4,7 @@ import {RichText} from '@atproto/api' import {useEditor, EditorContent, JSONContent} from '@tiptap/react' import {Document} from '@tiptap/extension-document' import History from '@tiptap/extension-history' +import Hardbreak from '@tiptap/extension-hard-break' import {Link} from '@tiptap/extension-link' import {Mention} from '@tiptap/extension-mention' import {Paragraph} from '@tiptap/extension-paragraph' @@ -72,6 +73,7 @@ export const TextInput = React.forwardRef( }), Text, History, + Hardbreak, ], editorProps: { attributes: { |