UNPKG

@mic-rexjs/usecases-react

Version:

React-based solution for use usecases of Clean Architecture

18 lines 765 B
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; };