UNPKG

@td-design/react-native

Version:

react-native UI组件库

72 lines 2.28 kB
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import React, { forwardRef } from 'react'; import { Platform } from 'react-native'; import Flex from '../flex'; import PasscodeItem from './PasscodeItem'; import usePasscode from './usePasscode'; const Passcode = /*#__PURE__*/forwardRef((_ref, ref) => { let { style, keyboardType = 'phone-pad', focusStyle, value, onChange, inputContainerStyle, inputStyle, count = 6, autoFocus = true, autoCapitalize = 'none', clearTextOnFocus = false, placeholder = '', secureTextEntry = false, selectTextOnFocus = true, onFinish, ...restProps } = _ref; const { otpCode, inputs, handleKeyPress, handleChangeText } = usePasscode({ onChange, value, count, ref, onFinish }); return /*#__PURE__*/React.createElement(Flex, { justifyContent: 'space-between', style: style }, Array(count).fill('').map((_, index) => { const inputValue = otpCode[`${index}`]; if (!inputs.current[index]) { inputs.current[index] = /*#__PURE__*/React.createRef(); } return /*#__PURE__*/React.createElement(PasscodeItem, _extends({ key: index, accessible: true, autoCapitalize: autoCapitalize, autoFocus: index === 0 && autoFocus, clearTextOnFocus: clearTextOnFocus, focusStyle: focusStyle, handleKeyPress: handleKeyPress(index), handleChangeText: handleChangeText(index), inputContainerStyle: inputContainerStyle, inputStyle: inputStyle, inputValue: inputValue, keyboardType: keyboardType, maxLength: Platform.select({ android: 1, ios: index === 0 ? count : 1 }), placeholder: placeholder, ref: inputs.current[index], secureTextEntry: secureTextEntry, selectTextOnFocus: selectTextOnFocus }, restProps)); })); }); Passcode.displayName = 'Passcode'; export default Passcode; //# sourceMappingURL=index.js.map