@mic-rexjs/usecases-react
Version:
React-based solution for use usecases of Clean Architecture
18 lines • 765 B
JavaScript
import { useConstant } from '../useConstant';
import { useUnmount } from 'ahooks';
import { ArgumentTypes } from '../../enums/ArgumentTypes';
import { contextUseCase } from '../../usecases/contextUseCase';
export const useContext = function (usecase) {
let argumentTypes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ArgumentTypes.None;
const context = useConstant(() => {
const _contextUseCase = contextUseCase(),
registerUseCase = _contextUseCase.registerUseCase;
return registerUseCase(usecase, argumentTypes);
});
useUnmount(() => {
const _contextUseCase2 = contextUseCase(),
unregisterUseCase = _contextUseCase2.unregisterUseCase;
unregisterUseCase(usecase, argumentTypes);
});
return context;
};