xstate-helpers
Version:
A collection of helpers for XState (with React).
28 lines (21 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var react = require('@xstate/react');
/**
* @deprecated depricated in favor of useStateCan()
*/
function useIsXStateTransitionAvailable(service, event) {
if ( // Machines invoked as services will be initially deferred:
// https://github.com/statelyai/xstate/blob/5da8724bb6c4dada5d6e8cc61e36c7e2c771838b/packages/core/src/Actor.ts#L74-L94
//
// Because we don't know what a deferred service will initialize to,
// we shouldn't throw if it doesn't have a "machine" property
//
// @ts-ignore
!service.deferred && !service.machine) {
throw new Error('The service given to useIsXStateTransitionAvailable() must be a state machine instance.');
}
return react.useSelector(service, React.useCallback(state => !!service.machine && !!service.machine.transition(state, event).changed, [service, event]));
}
exports.useIsXStateTransitionAvailable = useIsXStateTransitionAvailable;