feat: Gestion des secteurs et migration v3.0.4+304
- Ajout système complet de gestion des secteurs avec contours géographiques - Import des contours départementaux depuis GeoJSON - API REST pour la gestion des secteurs (/api/sectors) - Service de géolocalisation pour déterminer les secteurs - Migration base de données avec tables x_departements_contours et sectors_adresses - Interface Flutter pour visualisation et gestion des secteurs - Ajout thème sombre dans l'application - Corrections diverses et optimisations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
37
app/lib/app.dart
Normal file → Executable file
37
app/lib/app.dart
Normal file → Executable file
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:geosector_app/core/theme/app_theme.dart';
|
||||
import 'package:geosector_app/core/services/theme_service.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
import 'package:geosector_app/core/services/current_user_service.dart';
|
||||
@@ -13,6 +14,7 @@ import 'package:geosector_app/core/services/sync_service.dart';
|
||||
import 'package:geosector_app/core/services/connectivity_service.dart';
|
||||
import 'package:geosector_app/presentation/auth/splash_page.dart';
|
||||
import 'package:geosector_app/presentation/auth/login_page.dart';
|
||||
import 'package:geosector_app/presentation/auth/register_page.dart';
|
||||
import 'package:geosector_app/presentation/admin/admin_dashboard_page.dart';
|
||||
import 'package:geosector_app/presentation/user/user_dashboard_page.dart';
|
||||
|
||||
@@ -25,19 +27,25 @@ final membreRepository = MembreRepository();
|
||||
final amicaleRepository = AmicaleRepository();
|
||||
final syncService = SyncService(userRepository: userRepository);
|
||||
final connectivityService = ConnectivityService();
|
||||
final themeService = ThemeService.instance;
|
||||
|
||||
class GeosectorApp extends StatelessWidget {
|
||||
const GeosectorApp({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp.router(
|
||||
title: 'GeoSector',
|
||||
theme: AppTheme.lightTheme,
|
||||
darkTheme: AppTheme.darkTheme,
|
||||
themeMode: ThemeMode.system,
|
||||
routerConfig: _createRouter(),
|
||||
debugShowCheckedModeBanner: false,
|
||||
return AnimatedBuilder(
|
||||
animation: themeService,
|
||||
builder: (context, child) {
|
||||
return MaterialApp.router(
|
||||
title: 'GeoSector',
|
||||
theme: AppTheme.lightTheme,
|
||||
darkTheme: AppTheme.darkTheme,
|
||||
themeMode: themeService.themeMode,
|
||||
routerConfig: _createRouter(),
|
||||
debugShowCheckedModeBanner: false,
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@@ -50,8 +58,12 @@ class GeosectorApp extends StatelessWidget {
|
||||
path: '/',
|
||||
name: 'splash',
|
||||
builder: (context, state) {
|
||||
debugPrint('GoRoute: Affichage de SplashPage');
|
||||
return const SplashPage();
|
||||
// Récupérer les paramètres de query pour redirection automatique
|
||||
final action = state.uri.queryParameters['action'];
|
||||
final type = state.uri.queryParameters['type'];
|
||||
|
||||
debugPrint('GoRoute: Affichage de SplashPage avec action=$action, type=$type');
|
||||
return SplashPage(action: action, type: type);
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
@@ -87,12 +99,7 @@ class GeosectorApp extends StatelessWidget {
|
||||
name: 'register',
|
||||
builder: (context, state) {
|
||||
debugPrint('GoRoute: Affichage de RegisterPage');
|
||||
// Retournez votre page d'inscription ici
|
||||
return const Scaffold(
|
||||
body: Center(
|
||||
child: Text('Page d\'inscription - À implémenter'),
|
||||
),
|
||||
);
|
||||
return const RegisterPage();
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
|
||||
Reference in New Issue
Block a user