UNPKG

zp-bee

Version:

zp-bee,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。

99 lines (82 loc) 2.75 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _zpBee = require("zp-bee"); var _recoil = require("../../_utils/recoil"); var __rest = void 0 && (void 0).__rest || function (s, e) { var t = {}; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; } if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var inputGen = function inputGen(params) { var initialState = { value: '', defaultValue: '' }; var createSlice = (0, _recoil.atom)({ key: 'inputGen', default: initialState }); var dispatch = (0, _recoil.setCoiledState)(createSlice); var valueSelector = (0, _recoil.selector)({ key: 'inputSelector', get: function get(_ref) { var _get = _ref.get; var _get2 = _get(createSlice), value = _get2.value; return value; } }); var handleChange = function handleChange(e) { var value = e.target.value; dispatch({ value: value }); }; var _params$inputProps = params.inputProps, label = _params$inputProps.label, paramName = _params$inputProps.paramName; params.inject.set(Symbol('input'), { getValue: function getValue() { return (0, _defineProperty2.default)({}, paramName, createSlice.snapshot().value); }, resetValue: function resetValue() { return dispatch({ value: createSlice.snapshot().defaultValue }); } }); return /*#__PURE__*/(0, _react.memo)(function (props) { var propsValue = props.value, defaultValue = props.defaultValue, others = __rest(props, ["value", "defaultValue"]); var value = (0, _recoil.useCoiledValue)(valueSelector); (0, _react.useEffect)(function () { if (propsValue || defaultValue) { dispatch({ value: propsValue || defaultValue, defaultValue: defaultValue || '' }); } }, []); return /*#__PURE__*/_react.default.createElement(_zpBee.BeeInput, Object.assign({ label: label, value: value }, others, { onChange: handleChange })); }); }; var _default = inputGen; exports.default = _default;