zp-bee
Version:
zp-bee,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。
99 lines (82 loc) • 2.75 kB
JavaScript
;
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;