petitspas/frontend/lib/main.dart
Julien Martin 46d0f82f54 feat(#118): création du mot de passe depuis le lien e-mail
Livre le parcours complet « lien e-mail → page web → mot de passe initial » :
- API : vérification du token (comportement neutre si invalide/expiré) et création du mot de passe ; tests associés.
- Front : route /create-password, appels verify-token et create-password, validation alignée sur le backend, retour login après succès.
- Web : stratégie d’URL en path pour que les deep links /create-password?token=… fonctionnent sans redirection vers #/login.

Refs: #118
Made-with: Cursor
2026-04-23 16:45:47 +02:00

45 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_web_plugins/url_strategy.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; // Import pour la localisation
// import 'package:provider/provider.dart'; // Supprimer Provider
import 'config/app_router.dart'; // <-- Importer le bon routeur (GoRouter)
// import 'theme/app_theme.dart'; // Supprimer AppTheme
// import 'theme/theme_provider.dart'; // Supprimer ThemeProvider
void main() {
// Permet les URLs web propres (/create-password?token=...) sans hash.
usePathUrlStrategy();
runApp(const MyApp()); // Exécution simple
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
// Pas besoin de Provider.of ici
return MaterialApp.router( // <-- Utilisation de MaterialApp.router
title: 'P\'titsPas',
theme: ThemeData.light().copyWith( // Utiliser un thème simple par défaut
textTheme: GoogleFonts.meriendaTextTheme(
ThemeData.light().textTheme,
),
// TODO: Définir les couleurs principales si besoin
),
localizationsDelegates: const [ // Configuration pour la localisation
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: const [ // Langues supportées
Locale('fr', 'FR'), // Français
// Locale('en', 'US'), // Anglais, si besoin
],
locale: const Locale('fr', 'FR'), // Forcer la locale française par défaut
routerConfig: AppRouter.router, // <-- Passer la configuration du GoRouter
debugShowCheckedModeBanner: false,
);
}
}