diff options
Diffstat (limited to 'src/view/com/composer/text-input')
-rw-r--r-- | src/view/com/composer/text-input/TextInput.tsx | 1 | ||||
-rw-r--r-- | src/view/com/composer/text-input/TextInput.web.tsx | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/view/com/composer/text-input/TextInput.tsx b/src/view/com/composer/text-input/TextInput.tsx index 9c111bd38..10ac52b5d 100644 --- a/src/view/com/composer/text-input/TextInput.tsx +++ b/src/view/com/composer/text-input/TextInput.tsx @@ -34,6 +34,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 } 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, |