text: import {
    ADD_TODO,
    DELETE_TODO,
    EDIT_TODO,
    COMPLETE_TODO,
    COMPLETE_ALL,
    CLEAR_COMPLETED
  } from "../constants/ActionTypes";
  
  const initialState = [
    {
      text: "Use Redux",
      completed: false,
      id: 0
    }
  ];
  
  export default function todos(state = initialState, action) {
    switch (action.type) {
      case ADD_TODO:
        return [
          {
            id: state.reduce((maxId, todo) => Math.max(todo.id, maxId), -1) + 1,
            completed: false,
            text: action.text
          },
          ...state
        ];
  
      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;
    }
  }
  