Y aqui esta la solución. Todo lo puse en un archivo para simplificar cosas, el punto de esta solucion es mostrar el ejemplo usando grafos, no mostrar buenas practicas o codigo organizado. codesandbox.io/s/intelligent-…
La modifiqué un poco para que se puedan apreciar los diferentes estados iniciales
En el primer estado, independientemente del "limite", el segundo toggle debe mantenerse habilitado, siempre y cuando el primer toggle se encuentre activado.
En el segundo estado, el segundo toggle debe mantenerse deshabilitado aunque el primer toggle se encuentre habilitado porque el "limite" es verdadero. ¿Por qué?
En este ejemplo en particular, en los cambios no toman efecto hasta que se guardan en el servidor. Por lo tanto, en el primer escenario, el limite es 10, si el usuario desactiva el toggle, su numero actual es 9 por lo tanto el segundo toggle debe mantenerse habilitado
En el segundo escenario, el usuario ya se encuentra al limite con 10 tarjetas, por lo tanto tratar de guardar una adicional no es permitido, es por eso que el toggle se debe mantener deshabilitado independientemente del valor del primer toggle.
Claro que se puede resolver sin grafos, pero el codigo que resulta es muy feo :) los grafos lo hacen facil de leer y de seguir.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Mucha gente se queja que las estructuras de datos y los algoritmos no sirven en el “trabajo real”. Aquí te cuento como solucione un bug con teoría de grafos 🧵
Hay 2 toggles que pueden estar prendidos o apagados, de entrada tienes 4 posibles combinaciones: 2^2 = 4. Sin embargo, el segundo toggle no puede estar prendido si el segundo está apagado, por lo tanto solo existen 3 posibles combinaciones.
Pero hay más, supongamos que el segundo solo puede estar habilitado por alguna condición externa, es decir si esa condición X es verdadera, no importa si el primer toggle está habilitado, el segundo debe estar deshabilitado.