UNPKG

@mic-rexjs/usecases-react

Version:

React-based solution for use usecases of Clean Architecture

25 lines 820 B
import { useCreation } from 'ahooks'; import { useContext } from 'react'; import { ArgumentTypes } from '../../enums/ArgumentTypes'; import { Statuses } from '../../enums/Statuses'; export const useStatuses = (context, argumentTypes) => { const contextValue = useContext(context); return useCreation(() => { let statuses = Statuses.None; const _ref = contextValue || {}, store = _ref.store; const hasEntity = (argumentTypes & ArgumentTypes.Entity) === ArgumentTypes.Entity; if (hasEntity) { statuses |= Statuses.EntityRootEnabled; } if (contextValue) { statuses |= Statuses.ContextEnabled; } else { statuses |= Statuses.RootEnabled; } if (store) { statuses |= Statuses.EntityEnabled; } return statuses; }, [argumentTypes, contextValue]); };