Releases: statelyai/xstate
Releases · statelyai/xstate
@xstate/[email protected]
Patch Changes
- #5100
519188af785527195eea15972efbb260289c9979
Thanks @GoldingAustin! - When setting new array indexes, if the value is an object/array, use placeholder empty value to prevent mutation of original machine context
[email protected]
Patch Changes
- #5079
25963966c394fc904dc9b701a420b6e204ebe7f7
Thanks @davidkpiano! - The inspection event interfaces now expectActorRefLike
instead ofAnyActorRef
@xstate/[email protected]
Patch Changes
- Updated dependencies [
25963966c394fc904dc9b701a420b6e204ebe7f7
]:
@xstate/[email protected]
Patch Changes
- Updated dependencies [
25963966c394fc904dc9b701a420b6e204ebe7f7
]:
@xstate/[email protected]
Minor Changes
-
#5079
25963966c394fc904dc9b701a420b6e204ebe7f7
Thanks @davidkpiano! - ThecreateStoreWithProducer(…)
function now uses the new configuration API:import { createStoreWithProducer } from '@xstate/store'; // DEPRECATED API // const store = createStoreWithProducer( // producer, // { // count: 0 // }, // { // inc: (context, event) => { // context.count++; // } // } // ); const store = createStoreWithProducer(producer, { context: { count: 0 }, on: { inc: (context, event) => { context.count++; } } });
@xstate/[email protected]
Patch Changes
- Updated dependencies [
25963966c394fc904dc9b701a420b6e204ebe7f7
]:
@xstate/[email protected]
Patch Changes
- Updated dependencies [
25963966c394fc904dc9b701a420b6e204ebe7f7
]:
@xstate/[email protected]
Patch Changes
- Updated dependencies [
25963966c394fc904dc9b701a420b6e204ebe7f7
]:
@xstate/[email protected]
Minor Changes
-
#5085
51437a4d036029ab4ff74cb52721178b3e525c48
Thanks @davidkpiano! - TheshallowEqual
comparator has been added for selector comparison:import { shallowEqual } from '@xstate/store'; import { useSelector } from '@xstate/store/react'; import { store } from './store'; function MyComponent() { const state = useSelector( store, (s) => { return s.items.filter(/* ... */); }, shallowEqual ); // ... }
@xstate/[email protected]
Minor Changes
-
#5064
84aca37d0b02cb9cd5a32c8fd09e487bd8fe2a47
Thanks @davidkpiano! - There is a new single-argument config API forcreateStore(config)
:const store = createStore({ // Types (optional) types: { emitted: {} as { type: 'incremented' } }, // Context context: { count: 0 }, // Transitions on: { inc: (context, event: { by: number }, enq) => { enq.emit({ type: 'incremented' }); return { count: context.count + event.by }; }, dec: (context, event: { by: number }) => ({ count: context.count - event.by }) } });
-
#5064
84aca37d0b02cb9cd5a32c8fd09e487bd8fe2a47
Thanks @davidkpiano! - You can now emit events from a store:import { createStore } from '@xstate/store'; const store = createStore({ context: { count: 0 }, on: { increment: (context, event, { emit }) => { emit({ type: 'incremented' }); return { count: context.count + 1 }; } } }); store.on('incremented', () => { console.log('incremented!'); });