xstate-helpers
Version:
A collection of helpers for XState (with React).
16 lines (12 loc) • 490 B
JavaScript
import { useCallback } from 'react';
import { useSelector } from '@xstate/react';
function useStateCan(service, event) {
return useSelector(service, useCallback(state => {
if (typeof (state === null || state === void 0 ? void 0 : state.can) !== 'function') {
throw new Error(`Provided service of useStateCan() is invalid`);
}
return state.can(event);
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[JSON.stringify(event)]));
}
export { useStateCan };