@mic-rexjs/usecases-react
Version:
React-based solution for use usecases of Clean Architecture
24 lines (23 loc) • 818 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useRuntimeEntity = void 0;
var _Statuses = require("../../enums/Statuses");
var _react = require("react");
var useRuntimeEntity = exports.useRuntimeEntity = function useRuntimeEntity(store, entityArg, contextEntity, statuses) {
var prevEntityArgRef = (0, _react.useRef)(entityArg);
var entityRootDisabled = (statuses & _Statuses.Statuses.EntityRootEnabled) !== _Statuses.Statuses.EntityRootEnabled;
if (entityRootDisabled) {
return contextEntity;
}
var isFunction = typeof entityArg === 'function';
var prevEntityArg = prevEntityArgRef.current;
switch (true) {
case isFunction:
case prevEntityArg === entityArg:
return store.value;
}
prevEntityArgRef.current = entityArg;
return entityArg;
};