UNPKG

zp-bee

Version:

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

85 lines (74 loc) 2.33 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; var __rest = this && this.__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; }; import React, { useEffect, memo } from 'react'; import { BeeInput } from 'zp-bee'; import { atom, setCoiledState, selector, useCoiledValue } from '../../_utils/recoil'; var inputGen = function inputGen(params) { var initialState = { value: '', defaultValue: '' }; var createSlice = atom({ key: 'inputGen', default: initialState }); var dispatch = setCoiledState(createSlice); var valueSelector = 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 _defineProperty({}, paramName, createSlice.snapshot().value); }, resetValue: function resetValue() { return dispatch({ value: createSlice.snapshot().defaultValue }); } }); return /*#__PURE__*/memo(function (props) { var propsValue = props.value, defaultValue = props.defaultValue, others = __rest(props, ["value", "defaultValue"]); var value = useCoiledValue(valueSelector); useEffect(function () { if (propsValue || defaultValue) { dispatch({ value: propsValue || defaultValue, defaultValue: defaultValue || '' }); } }, []); return /*#__PURE__*/React.createElement(BeeInput, Object.assign({ label: label, value: value }, others, { onChange: handleChange })); }); }; export default inputGen;