UNPKG

linkmore-design

Version:

๐ŸŒˆ ๐Ÿš€lm็ป„ไปถๅบ“ใ€‚๐Ÿš€

199 lines (195 loc) โ€ข 6.59 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _radio = _interopRequireDefault(require("../radio")); var _checkbox = _interopRequireDefault(require("../checkbox")); var _row = _interopRequireDefault(require("../row")); var _col = _interopRequireDefault(require("../col")); var _inputNumber = _interopRequireDefault(require("../input-number")); var _GlobalContext = _interopRequireDefault(require("./GlobalContext")); // import { Radio, Checkbox, Row, Col, InputNumber } from "linkmore-design"; const RadioGroup = _radio.default.Group; const CheckboxGroup = _checkbox.default.Group; const radioStyle = { display: "block", paddingBottom: "6px" }; function SecondPane(props) { const { language = {} } = (0, _react.useContext)(_GlobalContext.default); const { assign, everyTime = {}, aTob = {}, aStartTob = {}, donTAssign } = language; const { value, onChange } = props; const [currentRadio, setCurrentRadio] = (0, _react.useState)(1); const [from, setFrom] = (0, _react.useState)(0); const [to, setTo] = (0, _react.useState)(10); const [offsetFrom, setOffsetFrom] = (0, _react.useState)(0); const [offset, setOffset] = (0, _react.useState)(1); const [selected, setSelected] = (0, _react.useState)(["0"]); const isFirstRender = _react.default.useRef(); if (isFirstRender.current !== false) { isFirstRender.current = true; } (0, _react.useEffect)(() => { if (value === "*") { setCurrentRadio(1); } else if (value.indexOf("-") > -1) { setCurrentRadio(2); const [defaultFrom, defaultTo] = value.split("-"); setFrom(parseInt(defaultFrom, 10)); setTo(parseInt(defaultTo, 10)); } else if (value.indexOf("/") > -1) { setCurrentRadio(3); const [defaultOffsetFrom, defaultOffset] = value.split("/"); setOffsetFrom(parseInt(defaultOffsetFrom, 10)); setOffset(parseInt(defaultOffset, 10)); } else if (value === "?") { setCurrentRadio(5); } else { setCurrentRadio(4); setSelected(value ? value.split(",") : ["0"]); } }, [value]); (0, _react.useEffect)(() => { if (!isFirstRender.current) { switch (currentRadio) { case 1: onChange("*"); break; case 2: onChange(`${from}-${to}`); break; case 3: onChange(`${offsetFrom}/${offset}`); break; case 4: onChange(selected.join(",")); break; case 5: onChange("?"); break; default: break; } } }, [currentRadio, from, to, offsetFrom, offset, selected]); const onChangeRadio = (0, _react.useCallback)(e => { setCurrentRadio(e.target.value); }, []); const onChangeFrom = (0, _react.useCallback)(v => { setFrom(v || 0); }, []); const onChangeTo = (0, _react.useCallback)(v => { setTo(v || 0); }, []); const onChangeOffsetFrom = (0, _react.useCallback)(v => { setOffsetFrom(v || 0); }, []); const onChangeOffset = (0, _react.useCallback)(v => { setOffset(v || 0); }, []); const onChangeSelected = (0, _react.useCallback)(v => { setSelected(v.length !== 0 ? v : ["0"]); }, []); const checkList = (0, _react.useMemo)(() => { const disabled = currentRadio !== 4; const checks = []; for (let i = 0; i < 60; i++) { checks.push( /*#__PURE__*/_react.default.createElement(_col.default, { key: i, span: 4 }, /*#__PURE__*/_react.default.createElement(_checkbox.default, { disabled: disabled, value: i.toString() }, i))); } return checks; }, [currentRadio, selected]); (0, _react.useEffect)(() => { isFirstRender.current = false; }, []); const aTobA = /*#__PURE__*/_react.default.createElement(_inputNumber.default, { disabled: currentRadio !== 2, min: 0, max: 59, value: from, size: "small", onChange: onChangeFrom, style: { width: 100 } }); const aTobB = /*#__PURE__*/_react.default.createElement(_inputNumber.default, { disabled: currentRadio !== 2, min: 0, max: 59, value: to, size: "small", onChange: onChangeTo, style: { width: 100 } }); const aStartTobA = /*#__PURE__*/_react.default.createElement(_inputNumber.default, { disabled: currentRadio !== 3, min: 0, max: 59, value: offsetFrom, size: "small", onChange: onChangeOffsetFrom, style: { width: 100 } }); const aStartTobB = /*#__PURE__*/_react.default.createElement(_inputNumber.default, { disabled: currentRadio !== 3, min: 0, max: 59, value: offset, size: "small", onChange: onChangeOffset, style: { width: 100 } }); // return <InputNumber /> return /*#__PURE__*/_react.default.createElement(RadioGroup, { name: "radiogroup", value: currentRadio, onChange: onChangeRadio }, /*#__PURE__*/_react.default.createElement(_radio.default, { style: radioStyle, value: 1 }, everyTime.second || "ๆฏไธ€็ง’้’Ÿ"), /*#__PURE__*/_react.default.createElement(_radio.default, { style: radioStyle, value: 5 }, donTAssign || "ไธๆŒ‡ๅฎš"), /*#__PURE__*/_react.default.createElement(_radio.default, { style: radioStyle, value: 2 }, aTob.second ? aTob.second(aTobA, aTobB) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\u4ECE\xA0", aTobA, "\xA0-\xA0", aTobB, "\xA0\u79D2\uFF0C\u6BCF\u79D2\u6267\u884C\u4E00\u6B21")), /*#__PURE__*/_react.default.createElement(_radio.default, { style: radioStyle, value: 3 }, aStartTob.second ? aStartTob.second(aStartTobA, aStartTobB) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\u4ECE\xA0", aStartTobA, "\xA0\u79D2\u5F00\u59CB\uFF0C \u6BCF\xA0", aStartTobB, "\xA0\u79D2\u6267\u884C\u4E00\u6B21")), /*#__PURE__*/_react.default.createElement(_radio.default, { style: radioStyle, value: 4 }, assign || "ๆŒ‡ๅฎš", /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(CheckboxGroup, { value: selected, onChange: onChangeSelected }, /*#__PURE__*/_react.default.createElement(_row.default, null, " ", checkList)))); } var _default = SecondPane; exports.default = _default;