From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../react-redux/src/reducers/todos.js | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js (limited to 'third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js') diff --git a/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js b/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js new file mode 100644 index 0000000000..84d982664d --- /dev/null +++ b/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js @@ -0,0 +1,49 @@ +import { ADD_TODO, DELETE_TODO, EDIT_TODO, COMPLETE_TODO, COMPLETE_ALL, CLEAR_COMPLETED } from '../constants/ActionTypes' + +const initialState = [] + +export default function todos(state = initialState, action) { + switch (action.type) { + case ADD_TODO: + return [ + ...state, + { + id: state.reduce((maxId, todo) => Math.max(todo.id, maxId), -1) + 1, + completed: false, + text: action.text + } + ] + + case DELETE_TODO: + return state.filter(todo => + todo.id !== action.id + ) + + case EDIT_TODO: + return state.map(todo => + todo.id === action.id ? + { ...todo, text: action.text } : + todo + ) + + case COMPLETE_TODO: + return state.map(todo => + todo.id === action.id ? + { ...todo, completed: !todo.completed } : + todo + ) + + case COMPLETE_ALL: + const areAllMarked = state.every(todo => todo.completed) + return state.map(todo => ({ + ...todo, + completed: !areAllMarked + })) + + case CLEAR_COMPLETED: + return state.filter(todo => todo.completed === false) + + default: + return state + } +} -- cgit v1.2.3