Actualizar valor único en matriz de elementos | reaccionar redux

Tengo una lista de tareas pendientes y quiero establecer el estado de ese elemento en la matriz para "completar" si el usuario hace clic en "completar".

Aquí está mi acción:

export function completeTodo(id) {
    return {
        type: "COMPLETE_TASK",
        completed: true,
        id
    }
}

Aquí está mi reductor:

case "COMPLETE_TASK": {
             return {...state,
                todos: [{
                    completed: action.completed
                }]
             }
        }

El problema que tengo es que el nuevo estado ya no tiene el texto asociado de ese elemento de tarea pendiente en el elemento seleccionado y la ID ya no está allí. ¿Es esto porque estoy sobrescribiendo el estado e ignorando las propiedades anteriores? La carga de mi objeto se ve así:

Objecttodos: Array[1]
    0: Object
        completed: false
        id: 0
        text: "Initial todo"
    __proto__: Object
    length: 1
    __proto__: Array[0]
    __proto__: Object

Como puede ver, todo lo que quiero hacer es establecer el valor completado en verdadero.

Respuestas a la pregunta(3)

Su respuesta a la pregunta