Add counter example; fix configuration
This commit is contained in:
29
examples/accident-counter/src/reducer.ts
Normal file
29
examples/accident-counter/src/reducer.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user