reshow-return
Version:
reshow-return (simple connect component with reshow-flux)
66 lines (65 loc) • 2.96 kB
JavaScript
;
var _interopRequireDefault = require("reshow-runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("reshow-runtime/helpers/interopRequireWildcard");
exports.__esModule = true;
exports.getReturn = exports["default"] = void 0;
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("reshow-runtime/helpers/objectWithoutPropertiesLoose"));
var _objectSpread2 = _interopRequireDefault(require("reshow-runtime/helpers/objectSpread2"));
var _reshowFlux = require("reshow-flux");
var _MemoReturn = _interopRequireDefault(require("../organisms/MemoReturn.js"));
var _connectOptions = _interopRequireDefault(require("../../connectOptions.js"));
var React = _interopRequireWildcard(require("react"));
var _jsxRuntime = require("react/jsx-runtime");
var _excluded = ["children", "backfillProps"]; // @ts-check
/**
* @typedef {object} GetReturnOptions
* @property {string} [displayName]
* @property {function} [useConnect]
* @property {string[]} [cleanProps]
* @property {object} [options]
*/
/**
* @template StateType
* @template ActionType
*
* @typedef {object} ReturnProps
* @property {import("reshow-flux-base").StoreObject<StateType, ActionType>} store
* @property {import("../../connectOptions").InitStatesType} [initStates]
* @property {{[key: string]: string[]}} [pathStates]
* @property {import("react").ReactNode[] | import("react").ReactNode} [children]
* @property {boolean} [backfillProps]
*/
/**
* @param {GetReturnOptions} props
* @returns {React.ElementType}
*/
var getReturn = exports.getReturn = function getReturn(_temp) {
var _ref = _temp === void 0 ? {} : _temp,
_ref$displayName = _ref.displayName,
displayName = _ref$displayName === void 0 ? "Return" : _ref$displayName,
useConnect = _ref.useConnect,
cleanProps = _ref.cleanProps,
options = _ref.options;
useConnect = useConnect || (0, _reshowFlux.useConnect)((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _connectOptions["default"]), options));
/**
* @template StateType
* @template ActionType
*
* @param {ReturnProps<StateType, ActionType>} props
*/
var Return = function Return(props) {
var children = props.children,
backfillProps = props.backfillProps,
otherProps = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded);
var state = /** @type function*/useConnect(props);
var nextProps = backfillProps ? (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state), _connectOptions["default"].reset(otherProps, cleanProps)) : (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _connectOptions["default"].reset(otherProps, cleanProps)), state);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MemoReturn["default"], {
props: nextProps,
children: children
});
};
Return.displayName = displayName;
return Return;
};
var Return = getReturn();
var _default = exports["default"] = Return;