2025-05-29 13:49:44 +02:00

74 lines
2.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:insparkspokalen_ui/homeFeed/usersHomeScreen/userHomePage.dart';
import 'package:insparkspokalen_ui/models/teamModel.dart';
import 'package:insparkspokalen_ui/services/backend/userService.dart';
import '../services/teamUserSyncService.dart';
import 'joinTeamPage.dart';
import 'package:insparkspokalen_ui/services/backend/teamService.dart';
import 'package:provider/provider.dart';
class TeamPage extends StatefulWidget {
const TeamPage({super.key});
@override
State<TeamPage> createState() => TeamPageState();
}
class TeamPageState extends State<TeamPage> {
late TeamService teamService;
late UserService userService;
List<TeamModel> teams = [];
final TeamUserSyncService syncService = TeamUserSyncService();
@override
void initState() {
teamService = Provider.of<TeamService>(context, listen: false);
userService = UserService();
super.initState();
_loadTeams(); // Ladda lag när sidan öppnas
}
Future<void> _loadTeams() async {
final result = await teamService.showTeams();
setState(() {
teams = result;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: const Color(0xFF2E2E2E),
body: Column(
children: [
const SizedBox(height: 32),
const Text(
'Tillgängliga lag',
style: TextStyle(color: Colors.amber, fontSize: 26),
),
Expanded(
child: ListView.builder(
itemCount: teams.length,
itemBuilder: (context, index) {
final team = teams[index];
return TeamCard(
team: team,
onJoin:
() => Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (_) => const UserHomePage()),
),
teamService: teamService,
userService: UserService(),
syncService: syncService,
);
},
),
),
],
),
);
}
}