tentar aresolver a home

This commit is contained in:
2026-06-08 14:54:04 +01:00
parent 7d2f3c4679
commit 947e119dba
5 changed files with 264 additions and 116 deletions

View File

@@ -4,6 +4,7 @@ import 'package:playmaker/classe/theme.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../controllers/team_controller.dart';
import '../controllers/active_team.dart';
import '../utils/size_extension.dart';
class StatusPage extends StatefulWidget {
@@ -44,6 +45,32 @@ class _StatusPageState extends State<StatusPage> {
if (_selectedTeamId == null) {
_loadSelectedTeamFallback();
}
// Listen to global active team changes (e.g., when user marks favorite)
globalActiveTeam.addListener(_onGlobalActiveTeamChanged);
// Se já existe um globalActiveTeam no momento da abertura da página, aplica-o
final atNow = globalActiveTeam.value;
if (atNow != null) {
_selectedTeamId = atNow.id;
_selectedTeamName = atNow.name;
_selectedTeamLogo = atNow.logo;
}
}
void _onGlobalActiveTeamChanged() {
final at = globalActiveTeam.value;
if (!mounted) return;
// Atualiza sempre para a equipa ativa global (favorita). Isto força a Status
// a mostrar a equipa marcada como favorita assim que o utilizador a define.
if (at != null) {
setState(() {
_selectedTeamId = at.id;
_selectedTeamName = at.name;
_selectedTeamLogo = at.logo;
});
}
}
String _prefsKey(String key) {
@@ -238,6 +265,12 @@ class _StatusPageState extends State<StatusPage> {
);
}
@override
void dispose() {
globalActiveTeam.removeListener(_onGlobalActiveTeamChanged);
super.dispose();
}
List<Map<String, dynamic>> _aggregateStats(
List<dynamic> stats, List<dynamic> games, List<dynamic> members) {
Map<String, Map<String, dynamic>> aggregated = {};