---
# System prepended metadata

title: Permitir mover subtareas en agenda

---

# Permitir mover subtareas en agenda
En domains/agenda/components/Schedule/index.js se debe crear un estado selectedSubtaskParent, el cual tendrá un valor cuando se seleccione una subtarea para ser movida con shift, se debe crear en este nivel ya que se debe pasar a todas las prioridades de la agenda, para que sus subtareas sepan si pueden ser seleccionadas, solo pueden ser seleccionadas si comparten el parent.
En domains/agenda/components/SubtaskCard/Subtasks/index.js se debe crear un selectedSubtaskIds y su similar de subtareas de diseño, que contenga un estado selectedSubtaskIds, el cual debe ser un set que almacena los ids las subtareas seleccionadas, esto nos servirá para poder marcar visualmente las subtareas seleccionadas.
En domains/agenda/components/SubtaskCard/Subtasks/SortableElements/index.js y su similar de subtareas de diseño, se debe agrega un div que contenga a SubtaskCard, el cual debe tener un onMouseDown que cuando se presione shift cambie el estado selectedSubtaskIds siempre y cuando se cumplan las condiciones del parent.
La lógica que se aplica actualmente para ocultar los elementos seleccionados, es preguntar si se esta moviendo y esta seleccionado.
Revisar el estilo badge que se aplica en domains/agenda/components/Schedule/CardTaskWrapper/index.js
Revisar como trabajar el onSortEnd, ya que trabaja con indices y no se como se calculan los indices con las tarjetas que fueron seleccionadas
Estimado de implementación 3-4 días
```
selectSubtask={(id, parent) => {
  setSelectedSubtaskParent(parent)
  this.setState(prevState => ({
    selectedSubtaskIds: prevState.selectedSubtaskIds.has(id)
      ? new Set(
          [...prevState.selectedSubtaskIds].filter(e => e !== id)
        )
      : new Set([...prevState.selectedSubtaskIds].concat(id))
  }))
}}
```
            
