mirror of
https://github.com/mosip/inji-wallet.git
synced 2026-01-08 21:18:14 -05:00
* chore(INJI-195): upgrade react native version and dependencies * chore(INJI-195): upgrade expo version and dependencies * chore(INJI-195): modify associated files on version upgrade * chore(INJI-295): fixed react native flipper and patch packages * chore(INJI-195): fix for expo prebuild * chore(INJI-195): expo linked to android/ios projects * chore(INJI-195): update metro config * chore(INJI-195): fix ios build with mmkv storage patch * chore(INJI-195): gradle version modified * chore(INJI-195): fixed rn version 0.71.8 due to mmkv library issue * chore(INJI-195): removed files in android * chore(INJI-195): fix 0.71.8 for iOS project through pods with expo linking * chore(INJI-195): fix for custom fonts added through pods due to rn linkage * chore(INJI-195): fix for removing assets.car generated from pods * Modify Node version in pipeline (#806) * chore(INJI-195): fix for android splash screen not shown up * chore(INJI-195): upgraded to node 18 in pipeline * chore(INJI-195): add the pod install twice to remove duplicates via script workaround (#807) Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com> * INJI-195 Set the signing team for iOS (#810) * chore(INJI-195): add the pod install twice to remove duplicates via script workaround * chore(INJI-195): set the signing team for ios build --------- Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com> * Modify github runner to self hosted runner (#811) * chore(INJI-195): add the pod install twice to remove duplicates via script workaround * chore(INJI-195): set the signing team for ios build * chore(INJI-195): set the self hosted runner for ios build --------- Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com> * Modify self hosted runner to github hosted runner (#813) * chore(INJI-195): add the pod install twice to remove duplicates via script workaround * chore(INJI-195): set the signing team for ios build * chore(INJI-195): set the self hosted runner for ios build * chore(INJI-195): modify the self hosted to github hosted runner --------- Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com> * chore(INJI-195): modify the self hosted to github hosted runner * chore(INJI-195): set the code signing identity for ios build * chore(INJI-195): assigned app icon files to asset --------- Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com> Signed-off-by: Swati Goel <meet2swati@gmail.com> Co-authored-by: Swati Goel <meet2swati@gmail.com>
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import React, {useEffect} from 'react';
|
|
import {TextInput} from 'react-native';
|
|
import {usePinInput} from '../machines/pinInput';
|
|
import {Row} from './ui';
|
|
import {Theme} from './ui/styleUtils';
|
|
|
|
export const PinInput: React.FC<PinInputProps> = props => {
|
|
const {state, send, events} = usePinInput(props.length);
|
|
const {inputRefs, values} = state.context;
|
|
const {UPDATE_INPUT, FOCUS_INPUT, KEY_PRESS} = events;
|
|
|
|
useEffect(() => {
|
|
if (props.onDone && values.filter(Boolean).length === inputRefs.length) {
|
|
props.onDone(values.join(''));
|
|
}
|
|
}, [state]);
|
|
|
|
return (
|
|
<Row width="100%" testID={props.testID}>
|
|
{inputRefs.map((input, index) => (
|
|
<TextInput
|
|
selectTextOnFocus
|
|
keyboardType="numeric"
|
|
maxLength={1}
|
|
secureTextEntry
|
|
selectionColor={Theme.Colors.inputSelection}
|
|
style={Theme.PinInputStyle.input}
|
|
key={index}
|
|
ref={input}
|
|
value={values[index]}
|
|
// KNOWN ISSUE: https://github.com/facebook/react-native/issues/19507
|
|
onKeyPress={({nativeEvent}) => send(KEY_PRESS(nativeEvent.key))}
|
|
onChangeText={(value: string) =>
|
|
send(UPDATE_INPUT(value.replace(/\D/g, ''), index))
|
|
}
|
|
onFocus={() => send(FOCUS_INPUT(index))}
|
|
/>
|
|
))}
|
|
</Row>
|
|
);
|
|
};
|
|
|
|
interface PinInputProps {
|
|
testID?: string;
|
|
length: number;
|
|
onDone?: (value: string) => void;
|
|
}
|