zarm
Version:
基于 React 的移动端UI库
80 lines (72 loc) • 2.89 kB
JavaScript
import * as React from 'react';
import PickerView from '../picker-view';
import PickerContainer from './Container';
var Picker = function Picker(props) {
var className = props.className,
style = props.style,
title = props.title,
confirmText = props.confirmText,
cancelText = props.cancelText,
value = props.value,
defaultValue = props.defaultValue,
wheelDefaultValue = props.wheelDefaultValue,
dataSource = props.dataSource,
fieldNames = props.fieldNames,
itemRender = props.itemRender,
cols = props.cols,
maskClosable = props.maskClosable,
mountContainer = props.mountContainer,
forceRender = props.forceRender,
destroy = props.destroy,
safeArea = props.safeArea,
onChange = props.onChange,
onConfirm = props.onConfirm,
onCancel = props.onCancel,
visible = props.visible;
var pickerViewRef = React.useRef(null);
var handleChange = function handleChange(changedValue, items, index) {
visible && (onChange === null || onChange === void 0 ? void 0 : onChange(changedValue, items, index));
};
var handleConfirm = function handleConfirm() {
var _pickerViewRef$curren, _pickerViewRef$curren2;
onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm((_pickerViewRef$curren = pickerViewRef.current) === null || _pickerViewRef$curren === void 0 ? void 0 : _pickerViewRef$curren.value, (_pickerViewRef$curren2 = pickerViewRef.current) === null || _pickerViewRef$curren2 === void 0 ? void 0 : _pickerViewRef$curren2.items);
};
var handleCancel = function handleCancel() {
var _pickerViewRef$curren3, _pickerViewRef$curren4;
(_pickerViewRef$curren3 = pickerViewRef.current) === null || _pickerViewRef$curren3 === void 0 ? void 0 : (_pickerViewRef$curren4 = _pickerViewRef$curren3.reset) === null || _pickerViewRef$curren4 === void 0 ? void 0 : _pickerViewRef$curren4.call(_pickerViewRef$curren3);
onCancel === null || onCancel === void 0 ? void 0 : onCancel();
};
return /*#__PURE__*/React.createElement(PickerContainer, {
title: title,
className: className,
style: style,
confirmText: confirmText,
cancelText: cancelText,
visible: visible,
maskClosable: maskClosable,
forceRender: forceRender,
destroy: destroy,
safeArea: safeArea,
mountContainer: mountContainer,
onConfirm: handleConfirm,
onCancel: handleCancel,
onClose: handleCancel
}, /*#__PURE__*/React.createElement(PickerView, {
ref: pickerViewRef,
value: value,
defaultValue: defaultValue,
wheelDefaultValue: wheelDefaultValue,
dataSource: dataSource,
cols: cols,
fieldNames: fieldNames,
itemRender: itemRender,
onChange: handleChange
}));
};
Picker.defaultProps = {
dataSource: [],
cols: Infinity,
maskClosable: true,
destroy: false
};
export default Picker;