diff options
author | renahlee <renahlee@outlook.com> | 2023-04-19 10:51:33 -0700 |
---|---|---|
committer | renahlee <renahlee@outlook.com> | 2023-04-19 11:58:04 -0700 |
commit | 31df05825ca21df7b0108e200681d6c2ab83fe33 (patch) | |
tree | 327bd4db8727c4e0b115725f30a7c7616e788f41 /src/view/com/composer/text-input/TextInput.web.tsx | |
parent | 8917cf77a0a73e38ad769cea090591c229d5a868 (diff) | |
download | voidsky-31df05825ca21df7b0108e200681d6c2ab83fe33.tar.zst |
Support CMD + Enter to publish post
Diffstat (limited to 'src/view/com/composer/text-input/TextInput.web.tsx')
-rw-r--r-- | src/view/com/composer/text-input/TextInput.web.tsx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/view/com/composer/text-input/TextInput.web.tsx b/src/view/com/composer/text-input/TextInput.web.tsx index e75da1791..f21d4ac1a 100644 --- a/src/view/com/composer/text-input/TextInput.web.tsx +++ b/src/view/com/composer/text-input/TextInput.web.tsx @@ -26,6 +26,7 @@ interface TextInputProps { autocompleteView: UserAutocompleteModel setRichText: (v: RichText) => void onPhotoPasted: (uri: string) => void + onPressPublish: (richtext: RichText) => Promise<false | undefined> onSuggestedLinksChanged: (uris: Set<string>) => void onError: (err: string) => void } @@ -39,6 +40,7 @@ export const TextInput = React.forwardRef( autocompleteView, setRichText, onPhotoPasted, + onPressPublish, onSuggestedLinksChanged, }: // onError, TODO TextInputProps, @@ -82,6 +84,16 @@ export const TextInput = React.forwardRef( getImageFromUri(items, onPhotoPasted) }, + handleKeyDown: (_, event) => { + if (event.metaKey && event.code === 'Enter') { + // Workaround relying on previous state from `setRichText` to + // get the updated text content during editor initialization + setRichText((state: RichText) => { + onPressPublish(state) + return state + }) + } + }, }, content: richtext.text.toString(), autofocus: true, |