UNPKG

zp-bee

Version:

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

184 lines (153 loc) 5.13 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 _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _zpBee = require("zp-bee"); var _recoil = require("../../_utils/recoil"); var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; 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 Option = _zpBee.BeeSelect.Option; var selectGen = function selectGen(params) { var _this = this; var initialState = { dataSource: params.list || [], value: '' }; var createSlice = (0, _recoil.atom)({ key: 'selectGen', default: initialState }); var dispatch = (0, _recoil.setCoiledState)(createSlice); var dataSourceSelector = (0, _recoil.selector)({ key: 'selectSelector', get: function get(_ref) { var _get = _ref.get; var _get2 = _get(createSlice), dataSource = _get2.dataSource; return dataSource; } }); var valueSelector = (0, _recoil.selector)({ key: 'selectSelector', get: function get(_ref2) { var _get3 = _ref2.get; var _get4 = _get3(createSlice), value = _get4.value; return value; } }); var handleChange = function handleChange(value) { dispatch({ value: value }); }; var _params$selectProps = params.selectProps, label = _params$selectProps.label, id = _params$selectProps.id, name = _params$selectProps.name, paramName = _params$selectProps.paramName; params.inject.set(Symbol('select'), { 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 fetchDataSource = props.fetchDataSource, propsValue = props.value, defaultValue = props.defaultValue, others = __rest(props, ["fetchDataSource", "value", "defaultValue"]); var dataSource = (0, _recoil.useCoiledValue)(dataSourceSelector); var value = (0, _recoil.useCoiledValue)(valueSelector); (0, _react.useEffect)(function () { if (propsValue || defaultValue) { dispatch({ value: propsValue || defaultValue, defaultValue: defaultValue || '' }); } if (fetchDataSource) { var fetchData = function fetchData() { return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator.default.mark(function _callee() { var data; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return fetchDataSource(); case 2: data = _context.sent; dispatch({ dataSource: data }); case 4: case "end": return _context.stop(); } } }, _callee); })); }; fetchData(); } }, []); return /*#__PURE__*/_react.default.createElement(_zpBee.BeeSelect, Object.assign({ label: label, value: value }, others, { onChange: handleChange }), dataSource.map(function (item) { return /*#__PURE__*/_react.default.createElement(Option, { value: item[id] }, item[name]); })); }); }; var _default = selectGen; exports.default = _default;