UNPKG

@mic-rexjs/usecases-react

Version:

React-based solution for use usecases of Clean Architecture

19 lines (18 loc) 684 B
import { Statuses } from '../../enums/Statuses'; import { useRef } from 'react'; export const useRuntimeEntity = (store, entityArg, contextEntity, statuses) => { const prevEntityArgRef = useRef(entityArg); const entityRootDisabled = (statuses & Statuses.EntityRootEnabled) !== Statuses.EntityRootEnabled; if (entityRootDisabled) { return contextEntity; } const isFunction = typeof entityArg === 'function'; const { current: prevEntityArg } = prevEntityArgRef; switch (true) { case isFunction: case prevEntityArg === entityArg: return store.value; } prevEntityArgRef.current = entityArg; return entityArg; };