UNPKG

@mic-rexjs/usecases-react

Version:

React-based solution for use usecases of Clean Architecture

28 lines (27 loc) 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useContextualItem = void 0; var _ahooks = require("ahooks"); var _Statuses = require("../../enums/Statuses"); var _cacheCall = require("../../methods/cacheCall"); var useContextualItem = exports.useContextualItem = function useContextualItem(contextItem, statuses, createFactory) { var depsKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; var factoryRef = (0, _ahooks.useLatest)(createFactory); var create = (0, _ahooks.useCreation)(function () { void depsKey; return (0, _cacheCall.cacheCall)(factoryRef.current, { onCompare: function onCompare() { return true; } }); }, [depsKey, factoryRef]); return (0, _ahooks.useCreation)(function () { var rootEnabled = (statuses & _Statuses.Statuses.RootEnabled) === _Statuses.Statuses.RootEnabled; if (!rootEnabled && contextItem) { return contextItem; } return create(); }, [statuses, contextItem, create]); };