react-native-confirmation-code-field
Version:
A react-native component to input confirmation code for both Android and IOS
19 lines (18 loc) • 683 B
JavaScript
import { useCallback, useDebugValue, useState } from 'react';
export const useFocusState = (onBlurFromProps, onFocusFromProps) => {
'use memo';
const [isFocused, setFocusFlag] = useState(false);
const onBlur = useCallback((blurEvent) => {
setFocusFlag(false);
onBlurFromProps?.(blurEvent);
}, [onBlurFromProps]);
const onFocus = useCallback((focusEvent) => {
setFocusFlag(true);
onFocusFromProps?.(focusEvent);
}, [onFocusFromProps]);
if (__DEV__) {
// eslint-disable-next-line react-hooks/rules-of-hooks
useDebugValue(isFocused ? 'Focused' : 'Unfocused');
}
return [isFocused, onFocus, onBlur];
};