mirror of
https://github.com/microsoft/frontend-bootcamp.git
synced 2026-01-26 14:56:42 +08:00
21 lines
477 B
TypeScript
21 lines
477 B
TypeScript
import { Store } from '../store';
|
|
import { addTodo, remove, complete, clear } from './pureFunctions';
|
|
|
|
export function reducer(state: Store['todos'], payload: any): Store['todos'] {
|
|
switch (payload.type) {
|
|
case 'addTodo':
|
|
return addTodo(state, payload.id, payload.label);
|
|
|
|
case 'remove':
|
|
return remove(state, payload.id);
|
|
|
|
case 'complete':
|
|
return complete(state, payload.id);
|
|
|
|
case 'clear':
|
|
return clear(state);
|
|
}
|
|
|
|
return state;
|
|
}
|