UNPKG

@cainiaofe/cn-ui-m

Version:
38 lines (37 loc) 1.69 kB
import { __assign } from "tslib"; import React, { useEffect, useState } from 'react'; import { attachPropertiesToComponent } from "../../../utils/attach-properties-to-component"; import { UICnDatePicker } from './date-picker'; import { renderToBody } from "../../cn-picker/render-to-body"; function prompt(props) { return new Promise(function (resolve) { var Wrapper = function () { var _a = useState(false), visible = _a[0], setVisible = _a[1]; useEffect(function () { setVisible(true); }, []); return (React.createElement(CnDatePickerPro, __assign({}, props, { visible: visible, onConfirm: function (val) { var _a; (_a = props.onConfirm) === null || _a === void 0 ? void 0 : _a.call(props, val); resolve(val); }, onClose: function () { var _a; (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props); setVisible(false); resolve(null); }, afterClose: function () { var _a; (_a = props.afterClose) === null || _a === void 0 ? void 0 : _a.call(props); unmount(); } }))); }; var unmount = renderToBody(React.createElement(Wrapper, null)); }); } UICnDatePicker.displayName = 'CnDatePickerPro'; var CnDatePicker = UICnDatePicker; var CnDatePickerPro = attachPropertiesToComponent(CnDatePicker, { prompt: prompt, }); CnDatePickerPro.displayName = 'CnDatePickerPro'; export { CnDatePickerPro, CnDatePickerPro as CnDatePicker };