Insparkspokalen-ui/lib/feed/adminHomeScreen/main_page_for_admin.dart

66 lines
2.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:insparkspokalen_ui/services/teamService.dart';
import 'package:provider/provider.dart';
import 'package:insparkspokalen_ui/models/teamModel.dart';
import 'package:insparkspokalen_ui/models/postModel.dart';
import 'package:insparkspokalen_ui/feed/adminHomeScreen/admin_info_block.dart';
class MainPageForAdmin extends StatefulWidget {
const MainPageForAdmin({super.key});
@override
State<MainPageForAdmin> createState() => MainPageForAdminState();
}
class MainPageForAdminState extends State<MainPageForAdmin> {
late final TeamService teamService;
List<TeamModel> teamItems = [];
@override
void initState() {
super.initState();
teamService = Provider.of<TeamService>(context, listen: false);
_loadItems();
}
Future<void> _loadItems() async {
final items = await teamService.showTeams();
setState(() {
teamItems = items;
});
}
@override
Widget build(BuildContext context) {
final pendingItems =
teamItems.where((team) => team.status == PostStatus.pending).toList();
return Scaffold(
backgroundColor: const Color(0xFF2E2E2E),
body: SafeArea(
child:
pendingItems.isEmpty
? const Center(child: Text('Inga grupper hittades'))
: ListView.builder(
itemCount: pendingItems.length,
itemBuilder: (context, index) {
final team = pendingItems[index];
return AdminInfoBlock(
group: team,
onReject: () {
setState(() {
final originalTeam = teamItems.firstWhere(
(teamIteam) => teamIteam.id == team.id,
);
originalTeam.status = PostStatus.rejected;
// TODO: Uppdatera status i databasen via service
});
},
status: team.status,
);
},
),
),
);
}
}