import 'package:flutter/material.dart'; import 'package:p_tits_pas/services/configuration_service.dart'; import 'package:p_tits_pas/widgets/admin/parametres_panel.dart'; import 'package:p_tits_pas/widgets/admin/user_management_panel.dart'; import 'package:p_tits_pas/widgets/app_footer.dart'; import 'package:p_tits_pas/widgets/admin/dashboard_admin.dart'; class AdminDashboardScreen extends StatefulWidget { const AdminDashboardScreen({super.key}); @override State createState() => _AdminDashboardScreenState(); } class _AdminDashboardScreenState extends State { bool? _setupCompleted; int mainTabIndex = 0; int settingsSubIndex = 0; @override void initState() { super.initState(); _loadSetupStatus(); } @override void dispose() { super.dispose(); } Future _loadSetupStatus() async { try { final completed = await ConfigurationService.getSetupStatus(); if (!mounted) return; setState(() { _setupCompleted = completed; if (!completed) mainTabIndex = 1; }); } catch (e) { if (mounted) { setState(() { _setupCompleted = false; mainTabIndex = 1; }); } } } void onMainTabChange(int index) { setState(() { mainTabIndex = index; }); } void onSettingsSubTabChange(int index) { setState(() { settingsSubIndex = index; }); } @override Widget build(BuildContext context) { if (_setupCompleted == null) { return const Scaffold( body: Center(child: CircularProgressIndicator()), ); } return Scaffold( appBar: PreferredSize( preferredSize: const Size.fromHeight(60.0), child: Container( decoration: BoxDecoration( border: Border( bottom: BorderSide(color: Colors.grey.shade300), ), ), child: DashboardAppBarAdmin( selectedIndex: mainTabIndex, onTabChange: onMainTabChange, setupCompleted: _setupCompleted!, ), ), ), body: Column( children: [ if (mainTabIndex == 0) const SizedBox.shrink() else DashboardSettingsSubBar( selectedSubIndex: settingsSubIndex, onSubTabChange: onSettingsSubTabChange, ), Expanded( child: _getBody(), ), const AppFooter(), ], ), ); } Widget _getBody() { if (mainTabIndex == 1) { return ParametresPanel( redirectToLoginAfterSave: !_setupCompleted!, selectedSettingsTabIndex: settingsSubIndex, ); } return const UserManagementPanel(); } }