Add team list and joining

This commit is contained in:
2026-03-11 18:06:22 +01:00
parent 216506070b
commit b86b71d29c
13 changed files with 1002 additions and 28 deletions

View File

@@ -6,6 +6,8 @@ class TeamProvider extends ChangeNotifier {
final TeamService _teamService = TeamService();
List<Team> _teams = [];
Future<List<Team>>? _initialLoadFuture;
List<Team> get teams => _teams;
Future<List<Team>> fetchAllTeams() async {
@@ -14,6 +16,16 @@ class TeamProvider extends ChangeNotifier {
return _teams;
}
Future<List<Team>> ensureTeamsLoaded() {
_initialLoadFuture ??= fetchAllTeams();
return _initialLoadFuture!;
}
Future<List<Team>> refreshTeams() {
_initialLoadFuture = fetchAllTeams();
return _initialLoadFuture!;
}
Future<Team> createTeam({
required String name,
required String tag,
@@ -36,7 +48,7 @@ class TeamProvider extends ChangeNotifier {
String? description,
}) async {
await _teamService.updateTeam(id, name: name, tag: tag, description: description);
await fetchAllTeams();
await refreshTeams();
}
Future<void> deleteTeam(int id) async {
@@ -58,5 +70,23 @@ class TeamProvider extends ChangeNotifier {
await _teamService.removeTeamFromTournament(tournamentId, teamId);
notifyListeners();
}
Future<List<Team>> getUserTeams() {
return _teamService.getUserTeams();
}
Future<void> joinTeam(int teamId) async {
await _teamService.joinTeam(teamId);
notifyListeners();
}
Future<void> leaveTeam(int teamId) async {
await _teamService.leaveTeam(teamId);
notifyListeners();
}
Future<List<Map<String, dynamic>>> getTeamMembers(int teamId) {
return _teamService.getTeamMembers(teamId);
}
}