@fruits-chain/react-native-xiaoshu
Version:
React Native UI library
61 lines (55 loc) • 1.83 kB
JavaScript
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