Skip to content

Commit 7ef8e8c

Browse files
authored
Merge pull request #42033 from Krishna2323/krishna2323/issue/41800
fix: Taxes - When creating a Tax, the keyboard does not automatically appear in the Name menu.
2 parents edd1719 + 25f7928 commit 7ef8e8c

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/components/TextPicker/TextSelectorModal.tsx

+28-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
import React, {useState} from 'react';
1+
import {useFocusEffect} from '@react-navigation/native';
2+
import React, {useCallback, useRef, useState} from 'react';
23
import {Keyboard, View} from 'react-native';
34
import Button from '@components/Button';
45
import HeaderWithBackButton from '@components/HeaderWithBackButton';
56
import Modal from '@components/Modal';
67
import ScreenWrapper from '@components/ScreenWrapper';
78
import ScrollView from '@components/ScrollView';
89
import TextInput from '@components/TextInput';
10+
import type {BaseTextInputRef} from '@components/TextInput/BaseTextInput/types';
911
import useLocalize from '@hooks/useLocalize';
1012
import useThemeStyles from '@hooks/useThemeStyles';
1113
import CONST from '@src/CONST';
@@ -19,6 +21,25 @@ function TextSelectorModal({value, description = '', onValueSelected, isVisible,
1921
const [currentValue, setValue] = useState(value);
2022
const paddingStyle = usePaddingStyle();
2123

24+
const inputRef = useRef<BaseTextInputRef | null>(null);
25+
const focusTimeoutRef = useRef<NodeJS.Timeout | null>(null);
26+
27+
useFocusEffect(
28+
useCallback(() => {
29+
focusTimeoutRef.current = setTimeout(() => {
30+
if (inputRef.current && isVisible) {
31+
inputRef.current.focus();
32+
}
33+
return () => {
34+
if (!focusTimeoutRef.current || !isVisible) {
35+
return;
36+
}
37+
clearTimeout(focusTimeoutRef.current);
38+
};
39+
}, CONST.ANIMATED_TRANSITION);
40+
}, [isVisible]),
41+
);
42+
2243
return (
2344
<Modal
2445
type={CONST.MODAL.MODAL_TYPE.RIGHT_DOCKED}
@@ -50,6 +71,12 @@ function TextSelectorModal({value, description = '', onValueSelected, isVisible,
5071
{...rest}
5172
value={currentValue}
5273
onInputChange={setValue}
74+
ref={(ref) => {
75+
if (!ref) {
76+
return;
77+
}
78+
inputRef.current = ref;
79+
}}
5380
/>
5481
</View>
5582
<Button

src/pages/workspace/taxes/WorkspaceCreateTaxPage.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ function WorkspaceCreateTaxPage({
9494
maxLength={CONST.TAX_RATES.NAME_MAX_LENGTH}
9595
multiline={false}
9696
role={CONST.ROLE.PRESENTATION}
97-
autoFocus
9897
/>
9998
<InputWrapper
10099
InputComponent={AmountPicker}

0 commit comments

Comments
 (0)