mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
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]>
27 lines
635 B
TypeScript
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 }) },
|
|
},
|
|
},
|
|
},
|
|
});
|