2.0.2 • Published 5 months ago

pinia-xstate v2.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

pinia-xstate

npm version bundle size

This middleware allows you to easily put your xstate state machines into a global pinia store.

This branch is for XState v5. If you're in Xstate v4, go here instead.

Installation

npm install xstate pinia-xstate

Usage

import { defineStore } from 'pinia'
import { createMachine } from 'xstate'
import { xstate } from 'pinia-xstate'

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

// create a store using the xstate middleware
export const useToggleStore = defineStore(
  toggleMachine.id,
  xstate(toggleMachine)
)
<script setup>
import { useToggleStore } from './store/toggle'

const store = useToggleStore()
</script>

<template>
  <button @click="store.send('TOGGLE')">
    {{ store.state.value === 'inactive'
      ? 'Click to activate'
      : 'Active! Click to deactivate' }}
  </button>
</template>

License

MIT

2.0.2

5 months ago

2.0.1

5 months ago

2.0.0

5 months ago

2.0.0-beta.1

8 months ago

2.0.0-beta.0

8 months ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago