Mohammad Asif cf937194cb Removed un-waned things 1. 6 months ago
..
dist cf937194cb Removed un-waned things 1. 6 months ago
es cf937194cb Removed un-waned things 1. 6 months ago
fsm cf937194cb Removed un-waned things 1. 6 months ago
lib cf937194cb Removed un-waned things 1. 6 months ago
LICENSE cf937194cb Removed un-waned things 1. 6 months ago
README.md cf937194cb Removed un-waned things 1. 6 months ago
package.json cf937194cb Removed un-waned things 1. 6 months ago

README.md

@xstate/react

This package contains utilities for using XState with React.

Quick start

  1. Install xstate and @xstate/react:
npm i xstate @xstate/react

Via CDN

<script src="https://unpkg.com/@xstate/react/dist/xstate-react.umd.min.js"></script>

By using the global variable XStateReact

or

<script src="https://unpkg.com/@xstate/react/dist/xstate-react-fsm.umd.min.js"></script>

By using the global variable XStateReactFSM

  1. Import the useMachine hook:
import { useMachine } from '@xstate/react';
import { createMachine } from 'xstate';

const toggleMachine = createMachine({
  id: 'toggle',
  initial: 'inactive',
  states: {
    inactive: {
      on: { TOGGLE: 'active' }
    },
    active: {
      on: { TOGGLE: 'inactive' }
    }
  }
});

export const Toggler = () => {
  const [state, send] = useMachine(toggleMachine);

  return (
    <button onClick={() => send('TOGGLE')}>
      {state.value === 'inactive'
        ? 'Click to activate'
        : 'Active! Click to deactivate'}
    </button>
  );
};