#Thread

1 messages · Page 1 of 1 (latest)

reef flower
#

@sage solar Te creo este hilo para no afectar el canal

Asi te dará error, no existe la variable aux, dejalo así:

const [provisionalSeg, setProvisionalSeg] = useState(segmentChosen);
sage solar
#

uy es verdad

#

vale listo

reef flower
#

Manda porfa captura de CreteSegment

sage solar
#

ahora como que desaparece cuando filtro

#
export const CreateSegment = ({ provisionalSeg, setProvisionalSeg, prov }) => {
  const {
    segmentsInfo,
    setSegmentsInfo,
    segmentChosen,
    lastSegmentClicked,
    setLastSegmentClicked,
    state,
    setState,
    userToken
  } = useContext(SegmentContext)

  const [deleteModal, setDeleteModal] = useState(false)
  const [editModal, setEditModal] = useState(false)

  const onSegmentSave = () => {
    let index = segmentsInfo.findIndex(
      segment => segment.id == segmentChosen.id
    )
    let aux = [...segmentsInfo]
    aux[index].emoji = provisionalSeg.emoji
    aux[index].title = provisionalSeg.title
    aux[index].description = provisionalSeg.description
    setSegmentsInfo(aux)

    if (state == 'CreatingSegment') {
      saveSegmentAction(URL, userToken, 'A', segmentChosen)
    } else if (state == 'EditingSegment') {
      saveSegmentAction(URL, userToken, 'M', segmentChosen)
    }
  }

  const onNotSegmentSave = () => {
    let index = segmentsInfo.findIndex(
      segment => segment.id == segmentChosen.id
    )
    let aux = [...segmentsInfo]
    // aux[index].filters = provisionalSeg.filters
    aux[index].filters = prov
    setSegmentsInfo(aux)
  }
#
 return (
    <div className='w-full h-full flex items-center text-color2'>
      <div className='relative bg-white w-full rounded-2xl drop-shadow-md  px-16 py-8 mx-2'>
        {deleteModal && (
          <Modal
            title='¿Seguro que quieres eliminar este segmento?'
            setDeleteModal={setDeleteModal}
            onDelete={() => {
              setState('Layout')
              deleteSegment(
                lastSegmentClicked,
                setLastSegmentClicked,
                segmentsInfo,
                setSegmentsInfo,
                userToken
              )
            }}
          />
        )}
        {editModal && (
          <Modal
            title='¿Estás seguro de que deseas salir sin guardar?'
            setEditModal={setEditModal}
            onExit={() => {
              if (state == 'CreatingSegment') {
                exitWithoutSaving(
                  segmentsInfo,
                  lastSegmentClicked,
                  setSegmentsInfo
                )
              } else if (state == 'EditingSegment') {
                onNotSegmentSave()
              }
              setState('Layout')
            }}
          />
        )}
        <div className='divide-y-2'>
          <SegmentHeader
            provisionalSeg={provisionalSeg}
            setProvisionalSeg={setProvisionalSeg}
            setEditModal={setEditModal}
          />
          <SegmentBody />
          <SegmentFooter
            onSegmentSave={onSegmentSave}
            setDeleteModal={setDeleteModal}
            setEditModal={setEditModal}
          />
        </div>
      </div>
    </div>
  )
#

son esos dos

#

el flujo es: en un segmento en el header puedes darle a la cruz y te aparece un modal por si estas seguro de si deseas salir sin guardar y ahi puedes guardar o no

#

y en el footer tienes una basura, un salir y un guardar. Guardar y eliminarlo va bien pero salir sin guardar tiene muchos bugs

#

por eso cree saveSegmentData, para teneer como un componente padre donde almacenar provisionalSeg, pero se me actualiza cuando el valor ya existe, si no existe si que es verdad que al salir sin guardar no lo guarda

sage solar
#

me faltaba un detalle y es que en SegmentLayout, que es el padre de SaveSegmentData, hay otro modal porque también puedes eliminar un segmento desde el Layout (aunque creo que no influye)

{deleteModal && (
    <Modal
       title='¿Seguro que quieres eliminar este segmento?'
       setDeleteModal={setDeleteModal}
       onDelete={() => {
           deleteSegment(
             lastSegmentClicked,
             setLastSegmentClicked,
             segmentsInfo,
             setSegmentsInfo,
             userToken
           )
       }}
    />
 )}
reef flower
#

@sage solar dame un momento y te colaboro 😄

sage solar
reef flower
#

Haz lo siguiente, comenta las 2 condiciones que tienes dentro de onExit sobre el modal de "salir sin guardar", que lo único que haga sea: setState("Layout")

sage solar
#

voy

reef flower
sage solar
#

ahora guarda pero cuando le das salir sin guardar no guarda

#

es raro porque por defecto es como que los guarda pero al salir sin guardar se reestablece

#

es como estaba antes pero ahora no te quita los filtros nuevos

reef flower
#

O que flujo deberia hacer cuando el usuario le de en no guardar?

sage solar
#

perdona!! guarda**

#

cuando le das salir sin guardar sí guarda

#

y debería reestablecer los filtros del segmento que había cuando le diste a editar

reef flower
#

Pero esto pasa tanto al momento de crear y editar? o solo editar?

sage solar
#

ahora mismo cuando estas creando segmento, no filtra (que sí debería)