UNPKG

@td-design/react-native-picker

Version:

基于 @td-design/react-native 的 picker 组件

100 lines 2.78 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, useImperativeHandle } from 'react'; import { StyleSheet } from 'react-native'; import { Flex, helpers, Pressable, Text } from '@td-design/react-native'; import dayjs from 'dayjs'; import DatePickerRN from '../components/DatePicker'; import useDatePicker from './useDatePicker'; const { ONE_PIXEL } = helpers; const DatePicker = /*#__PURE__*/forwardRef((props, ref) => { const { title, format = 'YYYY-MM-DD HH:mm', labelUnit = { year: '年', month: '月', day: '日', hour: '时', minute: '分' }, mode = 'date', minDate, maxDate, value, onChange, cancelText = '取消', okText = '确定', activeOpacity = 0.6, closeModal, ...restProps } = props; const { date, handleChange, handleOk, handleClose } = useDatePicker({ onChange, value, format, closeModal }); useImperativeHandle(ref, () => { return { getValue: () => { return { date, formatDate: dayjs(date).format(format) }; } }; }); return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Flex, { borderBottomWidth: ONE_PIXEL, borderBottomColor: "border", backgroundColor: "white", paddingVertical: "x3", paddingHorizontal: "x3" }, /*#__PURE__*/React.createElement(Pressable, { activeOpacity: activeOpacity, onPress: handleClose, style: styles.cancel }, /*#__PURE__*/React.createElement(Text, { variant: "p0", color: "primary200" }, cancelText)), /*#__PURE__*/React.createElement(Flex.Item, { alignItems: "center" }, /*#__PURE__*/React.createElement(Text, { variant: "p0", color: "text" }, title)), /*#__PURE__*/React.createElement(Pressable, { activeOpacity: activeOpacity, onPress: handleOk, style: styles.submit }, /*#__PURE__*/React.createElement(Text, { variant: "p0", color: "primary200" }, okText))), /*#__PURE__*/React.createElement(DatePickerRN, _extends({}, restProps, { mode, value: date, minDate, maxDate, labelUnit, format, onChange: handleChange }))); }); export default DatePicker; const styles = StyleSheet.create({ cancel: { justifyContent: 'center', alignItems: 'flex-start' }, submit: { justifyContent: 'center', alignItems: 'flex-end' } }); //# sourceMappingURL=index.js.map