ISCOUTB / DH-ScheduleGeneratorUTB

0 stars 1 forks source link

Crear sección de "materias seleccionadas" #30

Closed DiegoPP-Halal closed 1 week ago

DiegoPP-Halal commented 1 month ago

Esta tarea no estaba planteada, pero en el proceso de creación de la app me di cuenta que resultaba incomodo mostrar las materias seleccionadas en la sección del menú. Debido a esto, opte por diseñar una nueva sección dedicada a mostrar las materias seleccionadas: Image

Gavimantilla commented 4 weeks ago

Se ha optimizado la interfaz de la sección de materias seleccionadas para mejorar la experiencia del usuario, haciéndola más intuitiva y enfocada a la función que cumple. Para lograr esto, se ha implementado un widget modal en 'main.dart' que se superpone al widget principal, oscureciendo el resto de la aplicación y concentrando la atención del usuario en una sola tarea. También se implementó la funcionalidad de eliminar materias seleccionadas, un crucial requerimiento que se necesitaba.

Stack(
    children: [
      // Widget principal
      MainWidget(),
      // Widget modal
      if (isModalVisible)
        GestureDetector(
          onTap: () {
            setState(() {
              isModalVisible = false;
            });
          },
          child: Container(
            color: Colors.black54, // Fondo oscurecido
            child: Center(
              child: GestureDetector(
                onTap: () {}, // Evita el cierre al tocar dentro del modal
                child: SelectedSubjectsModal(onClose: () {
                  setState(() {
                    isModalVisible = false;
                  });
                }),
              ),
            ),
          ),
        ),
    ],
  )

Y a través de la función 'removeSubject' ubicada en 'main.dart' , se maneja la eliminación de materias:

void removeSubject(Subject subject) {
  setState(() {
    addedSubjects.removeWhere((s) => s.code == subject.code);
    usedCredits -= subject.credits;

    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text('Materia eliminada: ${subject.name}')),
    );
  });
}

Image