Closed DiegoPP-Halal closed 1 week 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}')),
);
});
}
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: