#Thread
1 messages · Page 1 of 1 (latest)
@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);
Manda porfa captura de CreteSegment
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
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
)
}}
/>
)}
@sage solar dame un momento y te colaboro 😄
gracias !!! 🙂 me estoy volviendo loca con este renderizado jaja
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")
voy
listo
Vale, funciona o que hace?
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
Ahí es donde no entiendo, si dices salir sin guardar, es lo que debería hacer, no? no guardar
O que flujo deberia hacer cuando el usuario le de en no guardar?
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
Pero esto pasa tanto al momento de crear y editar? o solo editar?
ahora mismo cuando estas creando segmento, no filtra (que sí debería)