UNPKG

reshow-return

Version:

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

51 lines (49 loc) 2.05 kB
"use strict"; var _interopRequireDefault = require("reshow-runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("reshow-runtime/helpers/interopRequireWildcard"); exports.__esModule = true; exports["default"] = void 0; var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("reshow-runtime/helpers/objectWithoutPropertiesLoose")); var React = _interopRequireWildcard(require("react")); var _reshowBuild = _interopRequireDefault(require("reshow-build")); var _reshowHooks = require("reshow-hooks"); var _reshowReturn = require("reshow-return"); var _hydrate = _interopRequireDefault(require("../../hydrate.js")); var _excluded = ["isHydrate"], _excluded2 = ["children", "backfillProps"]; // @ts-check /** * Example: * https://github.com/react-atomic/reshow/blob/main/packages/reshow-url/src/ui/organisms/UrlReturn.jsx * @param {React.ReactNode} comp * @param {string[]} cleanProps * @returns {React.ElementType} */ var ClientReturnHoc = function ClientReturnHoc(comp, cleanProps) { /** * @typedef {object} ClientReturnType * @property {boolean} [isHydrate] * @property {React.ReactNode} [children] * @property {boolean} [backfillProps] * @property {any} [props] */ /** * @param {ClientReturnType} allprops */ var ClientReturn = function ClientReturn(_ref) { var isHydrate = _ref.isHydrate, props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded); if ((0, _hydrate["default"])() || isHydrate) { var isLoad = (0, _reshowHooks.useLoaded)(); if (!isLoad) { var children = props.children, backfillProps = props.backfillProps, restProps = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded2); return (0, _reshowBuild["default"])(children)(_reshowReturn.connectOptions.reset(restProps, cleanProps)); } } return (0, _reshowBuild["default"])(comp)(props); }; return ClientReturn; }; var _default = exports["default"] = ClientReturnHoc; module.exports = exports.default;