Add counter example; fix configuration

This commit is contained in:
Steve Kinney
2024-09-16 15:44:34 -06:00
parent 1747f705a6
commit b13029bffc
15 changed files with 813 additions and 8 deletions

View File

@@ -0,0 +1,29 @@
type CounterState = {
count: number;
};
type CounterAction =
| { type: 'increment' }
| { type: 'decrement' }
| { type: 'reset' };
export function reducer(
state: CounterState = { count: 0 },
action: CounterAction,
): CounterState {
if (!action) return state;
switch (action.type) {
case 'increment':
return { count: state.count + 1 };
case 'decrement':
if (state.count > 0) {
return { count: state.count - 1 };
}
return { count: 0 };
case 'reset':
return { count: 0 };
default:
return state;
}
}