fixed bugs

This commit is contained in:
2026-08-21 13:11:55 +02:00
parent ab36215b7a
commit 64eade33f3
16 changed files with 367 additions and 361 deletions
+67 -3
View File
@@ -1,15 +1,79 @@
import 'package:flutter/material.dart';
import '../models/school.dart';
import '../screens/home_page.dart';
import '../screens/lessons_page.dart';
import '../screens/account_page.dart';
import '../screens/meditation_page.dart';
/// Bottom navigation centralizzata.
/// Gestisce da sé la navigazione tra le 4 tab principali.
/// Ogni pagina passa solo il proprio [currentIndex] e i dati utente.
///
/// [onBeforeLeave] è opzionale: le pagine che devono fare pulizia prima di
/// uscire (es. Meditazione che ferma musica/timer) lo passano.
class AppBottomNav extends StatelessWidget {
final int currentIndex;
final ValueChanged<int> onTap;
final String token;
final School school;
final String? userFirstName;
final Future<void> Function()? onBeforeLeave;
const AppBottomNav({
super.key,
required this.currentIndex,
required this.onTap,
required this.token,
required this.school,
this.userFirstName,
this.onBeforeLeave,
});
Future<void> _go(BuildContext context, int i) async {
if (i == currentIndex) return;
// pulizia eventuale (musica/timer) prima di lasciare la pagina
if (onBeforeLeave != null) {
await onBeforeLeave!();
}
if (!context.mounted) return;
Widget page;
switch (i) {
case 0:
page = HomePage(
token: token,
school: school,
userFirstName: userFirstName,
);
break;
case 1:
page = LessonsPage(
token: token,
school: school,
userFirstName: userFirstName,
);
break;
case 2:
page = AccountPage(
token: token,
school: school,
userFirstName: userFirstName,
);
break;
case 3:
page = MeditationPage(
token: token,
school: school,
userFirstName: userFirstName,
);
break;
default:
return;
}
Navigator.pushReplacement(context, MaterialPageRoute(builder: (_) => page));
}
@override
Widget build(BuildContext context) {
return BottomNavigationBar(
@@ -18,7 +82,7 @@ class AppBottomNav extends StatelessWidget {
selectedItemColor: const Color(0xFF10B981),
unselectedItemColor: Colors.black54,
currentIndex: currentIndex,
onTap: onTap,
onTap: (i) => _go(context, i),
items: const [
BottomNavigationBarItem(icon: Icon(Icons.home_rounded), label: 'Home'),
BottomNavigationBarItem(
+5 -1
View File
@@ -127,7 +127,11 @@ class AppDrawer extends StatelessWidget {
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => OrdersDetailPage(token: token),
builder: (_) => OrdersDetailPage(
token: token,
school: school,
userFirstName: userFirstName,
),
),
);
},