UNPKG

@fruits-chain/react-native-xiaoshu

Version:
61 lines (55 loc) 1.83 kB
function _extends() { _extends = Object.assign || 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, { memo } from 'react'; import { Keyboard } from 'react-native'; import { isArray, isValue } from '../helpers'; import { useTheme } from '../theme'; import Selector from '../selector'; import { usePersistFn } from '../hooks'; import FieldText from './text'; /** * 输入框 选择输入 */ const FieldSelector = _ref => { let { value, options = [], multiple, onChange, optionsLoading = false, innerStyle, editable = true, isLink = true, ...restProps } = _ref; const THEME_VAR = useTheme(); const onPressCell = usePersistFn(() => { Keyboard.dismiss(); if (editable) { Selector({ title: '请选择', multiple, options, value, onChange }).catch(() => {}); } }); const hasValue = multiple ? isArray(value) && value.length > 0 : isValue(value); const value2text = hasValue ? (multiple ? value : [value]).map(o => { const index = options.findIndex(ops => ops.value === o); if (index >= 0) { return options[index].label; } return null; }).filter(Boolean).join('、') : undefined; return /*#__PURE__*/React.createElement(FieldText, _extends({}, restProps, { innerStyle: optionsLoading ? [innerStyle, { opacity: THEME_VAR.active_opacity }] : innerStyle, onPress: optionsLoading ? undefined : onPressCell, value: value2text, isLink: isLink })); }; export default /*#__PURE__*/memo(FieldSelector); //# sourceMappingURL=selector.js.map