@idearium/react-state-router
The Idearium React state router component for XState.
Installation
$ yarn add @idearium/react-state-router
Usage
To use this component, first create a react context and use the service created through xstate for the provider value.
import ReactContext from 'context/reactContext';
import xstatemachine from 'machines/xstatemachine';
import { useInterpret } from '@xstate/react';
const Component = ({ children }) => {
    const service = useInterpret(xstatemachine);
    return (
        <ReactContext.Provider value={{ service }}>
            {children}
        </ReactContext.Provider>
    );
};
Then inside your component, import the state router component and context you created above.
import StateRouter from '@idearium/react-state-router';
import ReactContext from 'context/reactContext';
import Step1 from 'steps/step1';
import Step2 from 'steps/step2';
import Step3 from 'steps/step3';
const StateRouterComponent = () => (
    <StateRouter context={ReactContext}>
        <Step1 when="step1" />
        <Step2 when="step2" />
        <Step3 when="step3" />
    </StateRouter>
);
export default StateRouterComponent;
The state router will now automatically display the component when the when attribute matches the xstate state.