@mic-rexjs/usecases-react
Version:
React-based solution for use usecases of Clean Architecture
24 lines (23 loc) • 807 B
JavaScript
import { ArgumentTypes } from '../../enums/ArgumentTypes';
import { Statuses } from '../../enums/Statuses';
import { useCreation } from 'ahooks';
export const useStatuses = (argumentTypes, contextValue) => {
return useCreation(() => {
let statuses = Statuses.None;
const { store } = (contextValue || {});
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]);
};