import 'package:flutter/material.dart'; import 'package:insparkspokalen_ui/models/teamModel.dart'; import 'package:insparkspokalen_ui/services/userService.dart'; import 'createTeamsButton.dart'; import 'showTeams.dart'; import 'package:insparkspokalen_ui/services/teamService.dart'; import 'package:provider/provider.dart'; import 'package:insparkspokalen_ui/services/googleAuthService.dart'; class TeamPage extends StatefulWidget { const TeamPage({super.key}); @override State createState() => TeamPageState(); } class TeamPageState extends State { late TeamService teamService; List teams = []; final TextEditingController _controller = TextEditingController(); final TextEditingController maxMembersController = TextEditingController(); @override void initState() { teamService = Provider.of(context, listen: false); // <-- Hämtar den injicerade instansen super.initState(); _loadTeams(); // Ladda grupper när sidan öppnas } Future _loadTeams() async { final result = await teamService.showTeams(); setState(() { teams = result; //isLoading = false; }); } // Öppna dialog för att skapa lag void _openDialog() { showDialog( context: context, builder: (_) => CreateTeamsButton( controller: _controller, onTeamCreated: (newGroup) async { await _loadTeams(); // re-fetch full list from server }, ), ); } @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: () { ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text('Du gick med i ${team.name}')), ); }, teamService: TeamService(), userService: UserService(), ); }, ), ), ElevatedButton( onPressed: () async { final isAuthenticated = await GoogleAuthService.ensureLoggedIn(context); if (!isAuthenticated) return; _openDialog(); // or your next step }, style: ElevatedButton.styleFrom( backgroundColor: Colors.grey, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(40), ), ), child: const Text( 'Skapa nytt lag', style: TextStyle(color: Colors.white), ), ), const SizedBox(height: 16), const Text( 'Studentkåren DISK', style: TextStyle(color: Colors.white70), ), ], ), ); } }