Skip to content

Instantly share code, notes, and snippets.

@ajaychandran
Created February 12, 2020 09:39
Show Gist options
  • Save ajaychandran/e765536da44d0f87996481b9589f24c6 to your computer and use it in GitHub Desktop.
Save ajaychandran/e765536da44d0f87996481b9589f24c6 to your computer and use it in GitHub Desktop.

Revisions

  1. ajaychandran revised this gist Feb 12, 2020. No changes.
  2. ajaychandran created this gist Feb 12, 2020.
    39 changes: 39 additions & 0 deletions machine.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,39 @@

    // Available variables:
    // - Machine
    // - interpret
    // - assign
    // - send
    // - sendParent
    // - spawn
    // - raise
    // - actions
    // - XState (all XState exports)

    const accountMachine = Machine(
    {
    id: 'account',
    initial: 'opened',
    context: {
    id: "1",
    bank: 0
    },
    states: {
    opened: {
    on: {
    BANK_CLOSED: { target: 'closed', actions: 'close' },
    BANK_LOCKED: { target: 'locked', actions: 'lock' },
    BANK_CREDITED: { actions: 'credit' }
    }
    },
    locked: {
    on : {
    BANK_UNLOCKED: 'opened'
    }
    },
    closed: {
    type: 'final'
    }
    }
    }
    );