diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-06-06 16:21:22 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-06 14:21:22 +0100 |
commit | 85e676257ec590b7fb05d9cc1e7ac352d7d89c09 (patch) | |
tree | 66b7f0cbb5fc9f14bd1e173fbdc3337fb4374e45 /src/view/com | |
parent | 48796449eae4be825041d4d372e9f64f61529429 (diff) | |
download | voidsky-85e676257ec590b7fb05d9cc1e7ac352d7d89c09.tar.zst |
Composer - make sure android keyboard opens (#4390)
* keep trying to open keyboard until it's open * limit number of retries * keep the original 50ms one as well * Proper fix! * disable autoFocus if not visible * Reset derived state * Revert "Reset derived state" This reverts commit 71f57391ae78bac717282e699d1b83cbd87771eb. * Use derived state pattern * Rename for clarity --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Diffstat (limited to 'src/view/com')
-rw-r--r-- | src/view/com/composer/Composer.tsx | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 80890286b..862e36625 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -107,7 +107,9 @@ export const ComposePost = observer(function ComposePost({ text: initText, imageUris: initImageUris, cancelRef, + isModalReady, }: Props & { + isModalReady: boolean cancelRef?: React.RefObject<CancelRef> }) { const {currentAccount} = useSession() @@ -155,12 +157,6 @@ export const ComposePost = observer(function ComposePost({ const [labels, setLabels] = useState<string[]>([]) const [threadgate, setThreadgate] = useState<ThreadgateSetting[]>([]) - React.useEffect(() => { - if (!isAndroid) return - const id = setTimeout(() => textInput.current?.focus(), 100) - return () => clearTimeout(id) - }, []) - const gallery = useMemo( () => new GalleryModel(initImageUris), [initImageUris], @@ -181,9 +177,7 @@ export const ComposePost = observer(function ComposePost({ const onPressCancel = useCallback(() => { if (graphemeLength > 0 || !gallery.isEmpty || extGif) { closeAllDialogs() - if (Keyboard) { - Keyboard.dismiss() - } + Keyboard.dismiss() discardPromptControl.open() } else { onClose() @@ -524,7 +518,11 @@ export const ComposePost = observer(function ComposePost({ ref={textInput} richtext={richtext} placeholder={selectTextInputPlaceholder} - autoFocus={!isAndroid} + // fixes autofocus on android + key={ + isAndroid ? (isModalReady ? 'ready' : 'animating') : 'static' + } + autoFocus={isAndroid ? isModalReady : true} setRichText={setRichText} onPhotoPasted={onPhotoPasted} onPressPublish={onPressPublish} |