UNPKG

ayanami

Version:
25 lines (24 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useAyanami = void 0; var tslib_1 = require("tslib"); var React = tslib_1.__importStar(require("react")); var get_1 = tslib_1.__importDefault(require("lodash/get")); var core_1 = require("../core"); var constants_1 = require("../ssr/constants"); var flag_1 = require("../ssr/flag"); var ssr_context_1 = require("../ssr/ssr-context"); var use_ayanami_instance_1 = require("./use-ayanami-instance"); function useAyanami(A, config) { var scope = get_1.default(config, 'scope'); var selector = get_1.default(config, 'selector'); var req = flag_1.isSSREnabled() ? React.useContext(ssr_context_1.SSRContext) : null; var reqScope = req ? core_1.createScopeWithRequest(req, scope) : scope; var ayanami = React.useMemo(function () { return core_1.getInstanceWithScope(A, reqScope); }, [reqScope]); ayanami.scopeName = scope || constants_1.DEFAULT_SCOPE_NAME; var useAyanamiInstanceConfig = React.useMemo(function () { return { destroyWhenUnmount: scope === core_1.TransientScope, selector: selector }; }, [reqScope]); return use_ayanami_instance_1.useAyanamiInstance(ayanami, useAyanamiInstanceConfig); } exports.useAyanami = useAyanami;