UNPKG

reshow-return

Version:

reshow-return (simple connect component with reshow-flux)

66 lines (65 loc) 2.96 kB
"use strict"; 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;