UNPKG

react-native-confirmation-code-field

Version:

A react-native component to input confirmation code for both Android and IOS

20 lines (19 loc) 749 B
import { useCallback, useEffect, useState } from 'react'; import { useTimeout } from './useTimer'; export const DEFAULT_BLINKING_SPEED = 500; export const MaskSymbol = ({ isLastFilledCell, children: symbol, maskSymbol, delay = DEFAULT_BLINKING_SPEED, }) => { 'use memo'; const [visibleFlag, setFlag] = useState(true); const toggleVisibility = useCallback(() => { setFlag((prev) => !prev); }, []); useTimeout(toggleVisibility, delay); useEffect(() => { if (isLastFilledCell) { // eslint-disable-next-line react-hooks/set-state-in-effect setFlag(false); } }, [isLastFilledCell]); return <>{visibleFlag ? symbol : maskSymbol}</>; }; MaskSymbol.displayName = 'MaskSymbol';