Files
5348db44c3 updated the example of with-xstate to utilize the App Router (#69960)
This PR updates the with-xstate example to use the App Router. Here are
the changes that have been made:

- Renamed the `pages` folder to the `app` folder.
- Updated the routing for / files to align with the App Router.
- moved the `components` and `machine` folder inside the app directory
by renaming it to `_components` and `_machine`
- Added the `layout.tsx` file as part of the App Router.
- Updated the package.json file.

CC: @samcx

---------

Co-authored-by: samcx <[email protected]>
2024-09-11 14:03:38 -07:00

27 lines
635 B
TypeScript

import { createMachine, assign } from "xstate";
type CounterContext = {
count: number;
};
type CounterEvents = { type: "INC" } | { type: "DEC" } | { type: "RESET" };
export const counterMachine = createMachine({
types: {} as {
context: CounterContext;
events: CounterEvents;
},
id: "counter",
initial: "active",
context: { count: 999 },
states: {
active: {
on: {
INC: { actions: assign({ count: ({ context }) => context.count + 1 }) },
DEC: { actions: assign({ count: ({ context }) => context.count - 1 }) },
RESET: { actions: assign({ count: 0 }) },
},
},
},
});