UNPKG

@aliretail/react-materials-components

Version:
121 lines (106 loc) 3.86 kB
import _DatePicker from "@alifd/next/es/date-picker2"; import _extends from "@babel/runtime/helpers/extends"; import _Tag from "@alifd/next/es/tag"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; var _excluded = ["value", "onChange"]; /* eslint-disable react/prop-types */ import * as React from 'react'; import dayjs from 'dayjs'; var RelativeTimeSelector = /*#__PURE__*/React.forwardRef(function (props, ref) { var value = props.value, onChange = props.onChange, restProps = _objectWithoutPropertiesLoose(props, _excluded); var _React$useState = React.useState(), time = _React$useState[0], setTime = _React$useState[1]; var handleTagChange = function handleTagChange(timeType, day) { setTime(timeType); onChange === null || onChange === void 0 ? void 0 : onChange(day.format('YYYY-MM-DD HH:mm:ss')); }; var handlePickerChange = function handlePickerChange(m) { if (m) { var current = dayjs(); var diff = Math.round(m.diff(current, 'minutes', true)); switch (diff) { case 30: setTime('30m'); break; case 60: setTime('1h'); break; case 2 * 60: setTime('2h'); break; case 12 * 60: setTime('12h'); break; case 24 * 60: setTime('1d'); break; case 3 * 24 * 60: setTime('3d'); break; case 7 * 24 * 60: setTime('7d'); break; case 14 * 24 * 60: setTime('14d'); break; default: break; } onChange === null || onChange === void 0 ? void 0 : onChange(m.format('YYYY-MM-DD HH:mm:ss')); } else { setTime(undefined); onChange === null || onChange === void 0 ? void 0 : onChange(undefined); } }; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Tag.Group, { ref: ref }, /*#__PURE__*/React.createElement(_Tag.Selectable, { checked: time === '30m', onChange: function onChange() { return handleTagChange('30m', dayjs().add(30, 'minute')); } }, "30\u5206\u949F"), /*#__PURE__*/React.createElement(_Tag.Selectable, { checked: time === '1h', onChange: function onChange() { return handleTagChange('1h', dayjs().add(1, 'hour')); } }, "1\u5C0F\u65F6"), /*#__PURE__*/React.createElement(_Tag.Selectable, { checked: time === '2h', onChange: function onChange() { return handleTagChange('2h', dayjs().add(2, 'hour')); } }, "2\u5C0F\u65F6"), /*#__PURE__*/React.createElement(_Tag.Selectable, { checked: time === '12h', onChange: function onChange() { return handleTagChange('12h', dayjs().add(12, 'hour')); } }, "12\u5C0F\u65F6"), /*#__PURE__*/React.createElement(_Tag.Selectable, { checked: time === '1d', onChange: function onChange() { return handleTagChange('1d', dayjs().add(1, 'day')); } }, "1\u5929"), /*#__PURE__*/React.createElement(_Tag.Selectable, { checked: time === '3d', onChange: function onChange() { return handleTagChange('3d', dayjs().add(3, 'day')); } }, "3\u5929"), /*#__PURE__*/React.createElement(_Tag.Selectable, { checked: time === '7d', onChange: function onChange() { return handleTagChange('7d', dayjs().add(7, 'day')); } }, "7\u5929"), /*#__PURE__*/React.createElement(_Tag.Selectable, { checked: time === '14d', onChange: function onChange() { return handleTagChange('14d', dayjs().add(14, 'day')); } }, "14\u5929")), /*#__PURE__*/React.createElement(_DatePicker, _extends({ value: value ? dayjs(value) : undefined, onChange: handlePickerChange, showTime: true }, restProps))); }); export default RelativeTimeSelector;