@mic-rexjs/usecases-react
Version:
React-based solution for use usecases of Clean Architecture
25 lines • 820 B
JavaScript
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]);
};