Versione OK Pour l'onglet événements.

This commit is contained in:
DahoudG
2025-09-15 20:15:34 +00:00
parent 8a619ee1bf
commit 12d514d866
73 changed files with 11508 additions and 674 deletions

View File

@@ -163,7 +163,7 @@ class _ForgotPasswordScreenState extends State<ForgotPasswordScreen>
const SizedBox(height: 16),
// Message de succès
Text(
const Text(
'Nous avons envoyé un lien de réinitialisation à :',
style: TextStyle(
fontSize: 16,
@@ -196,15 +196,15 @@ class _ForgotPasswordScreenState extends State<ForgotPasswordScreen>
color: AppTheme.infoColor.withOpacity(0.2),
),
),
child: Column(
child: const Column(
children: [
const Icon(
Icon(
Icons.info_outline,
color: AppTheme.infoColor,
size: 24,
),
const SizedBox(height: 12),
const Text(
SizedBox(height: 12),
Text(
'Instructions',
style: TextStyle(
fontSize: 16,
@@ -212,7 +212,7 @@ class _ForgotPasswordScreenState extends State<ForgotPasswordScreen>
color: AppTheme.textPrimary,
),
),
const SizedBox(height: 8),
SizedBox(height: 8),
Text(
'1. Vérifiez votre boîte email (et vos spams)\n'
'2. Cliquez sur le lien de réinitialisation\n'
@@ -291,7 +291,7 @@ class _ForgotPasswordScreenState extends State<ForgotPasswordScreen>
const SizedBox(height: 8),
// Sous-titre
Text(
const Text(
'Pas de problème ! Nous allons vous aider à le récupérer.',
style: TextStyle(
fontSize: 16,
@@ -328,11 +328,11 @@ class _ForgotPasswordScreenState extends State<ForgotPasswordScreen>
),
),
const SizedBox(width: 16),
Expanded(
const Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
Text(
'Comment ça marche ?',
style: TextStyle(
fontSize: 16,
@@ -340,7 +340,7 @@ class _ForgotPasswordScreenState extends State<ForgotPasswordScreen>
color: AppTheme.textPrimary,
),
),
const SizedBox(height: 4),
SizedBox(height: 4),
Text(
'Saisissez votre email et nous vous enverrons un lien sécurisé pour réinitialiser votre mot de passe.',
style: TextStyle(
@@ -388,7 +388,7 @@ class _ForgotPasswordScreenState extends State<ForgotPasswordScreen>
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
const Text(
'Vous vous souvenez de votre mot de passe ? ',
style: TextStyle(
color: AppTheme.textSecondary,

View File

@@ -190,7 +190,7 @@ class _TempLoginPageState extends State<TempLoginPage>
decoration: InputDecoration(
labelText: 'Adresse email',
hintText: 'votre.email@exemple.com',
prefixIcon: Icon(
prefixIcon: const Icon(
Icons.email_outlined,
color: AppTheme.primaryColor,
),
@@ -202,7 +202,7 @@ class _TempLoginPageState extends State<TempLoginPage>
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide(
borderSide: const BorderSide(
color: AppTheme.primaryColor,
width: 2,
),
@@ -234,7 +234,7 @@ class _TempLoginPageState extends State<TempLoginPage>
decoration: InputDecoration(
labelText: 'Mot de passe',
hintText: 'Saisissez votre mot de passe',
prefixIcon: Icon(
prefixIcon: const Icon(
Icons.lock_outlined,
color: AppTheme.primaryColor,
),
@@ -260,7 +260,7 @@ class _TempLoginPageState extends State<TempLoginPage>
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide(
borderSide: const BorderSide(
color: AppTheme.primaryColor,
width: 2,
),
@@ -320,7 +320,7 @@ class _TempLoginPageState extends State<TempLoginPage>
: null,
),
const SizedBox(width: 8),
Text(
const Text(
'Se souvenir de moi',
style: TextStyle(
fontSize: 14,
@@ -340,7 +340,7 @@ class _TempLoginPageState extends State<TempLoginPage>
color: AppTheme.infoColor.withOpacity(0.1),
borderRadius: BorderRadius.circular(12),
),
child: Text(
child: const Text(
'Compte de test',
style: TextStyle(
fontSize: 12,
@@ -376,12 +376,12 @@ class _TempLoginPageState extends State<TempLoginPage>
strokeWidth: 2,
),
)
: Row(
: const Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(Icons.login, size: 20),
const SizedBox(width: 8),
const Text(
Icon(Icons.login, size: 20),
SizedBox(width: 8),
Text(
'Se connecter',
style: TextStyle(
fontSize: 16,

View File

@@ -161,7 +161,7 @@ class _LoginScreenState extends State<LoginScreen>
const SizedBox(height: 8),
// Sous-titre
Text(
const Text(
'Connectez-vous à votre compte UnionFlow',
style: TextStyle(
fontSize: 16,
@@ -269,11 +269,11 @@ class _LoginScreenState extends State<LoginScreen>
}
Widget _buildDivider() {
return Row(
return const Row(
children: [
const Expanded(child: Divider()),
Expanded(child: Divider()),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
padding: EdgeInsets.symmetric(horizontal: 16),
child: Text(
'ou',
style: TextStyle(
@@ -282,7 +282,7 @@ class _LoginScreenState extends State<LoginScreen>
),
),
),
const Expanded(child: Divider()),
Expanded(child: Divider()),
],
);
}
@@ -348,7 +348,7 @@ class _LoginScreenState extends State<LoginScreen>
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
const Text(
'Pas encore de compte ? ',
style: TextStyle(
color: AppTheme.textSecondary,

View File

@@ -163,7 +163,7 @@ class _RegisterScreenState extends State<RegisterScreen>
const SizedBox(height: 8),
// Sous-titre
Text(
const Text(
'Rejoignez UnionFlow et gérez votre association',
style: TextStyle(
fontSize: 16,
@@ -386,25 +386,25 @@ class _RegisterScreenState extends State<RegisterScreen>
),
Expanded(
child: RichText(
text: TextSpan(
style: const TextStyle(
text: const TextSpan(
style: TextStyle(
color: AppTheme.textSecondary,
fontSize: 14,
),
children: [
const TextSpan(text: 'J\'accepte les '),
TextSpan(text: 'J\'accepte les '),
TextSpan(
text: 'Conditions d\'utilisation',
style: const TextStyle(
style: TextStyle(
color: AppTheme.primaryColor,
fontWeight: FontWeight.w600,
decoration: TextDecoration.underline,
),
),
const TextSpan(text: ' et la '),
TextSpan(text: ' et la '),
TextSpan(
text: 'Politique de confidentialité',
style: const TextStyle(
style: TextStyle(
color: AppTheme.primaryColor,
fontWeight: FontWeight.w600,
decoration: TextDecoration.underline,
@@ -459,7 +459,7 @@ class _RegisterScreenState extends State<RegisterScreen>
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
const Text(
'Déjà un compte ? ',
style: TextStyle(
color: AppTheme.textSecondary,

View File

@@ -87,7 +87,7 @@ class LoginFooter extends StatelessWidget {
color: AppTheme.textSecondary.withOpacity(0.1),
),
),
child: Column(
child: const Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
@@ -97,7 +97,7 @@ class LoginFooter extends StatelessWidget {
size: 20,
color: AppTheme.successColor,
),
const SizedBox(width: 8),
SizedBox(width: 8),
Text(
'Connexion sécurisée',
style: TextStyle(
@@ -108,7 +108,7 @@ class LoginFooter extends StatelessWidget {
),
],
),
const SizedBox(height: 8),
SizedBox(height: 8),
Text(
'Vos données sont protégées par un cryptage de niveau bancaire',
textAlign: TextAlign.center,
@@ -174,7 +174,7 @@ class LoginFooter extends StatelessWidget {
const SizedBox(width: 6),
Text(
label,
style: TextStyle(
style: const TextStyle(
fontSize: 12,
color: AppTheme.textSecondary,
fontWeight: FontWeight.w500,
@@ -216,14 +216,14 @@ class LoginFooter extends StatelessWidget {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
title: Row(
title: const Row(
children: [
Icon(
Icons.help_outline,
color: AppTheme.infoColor,
),
const SizedBox(width: 12),
const Text('Aide'),
SizedBox(width: 12),
Text('Aide'),
],
),
content: Column(
@@ -249,7 +249,7 @@ class LoginFooter extends StatelessWidget {
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: Text(
child: const Text(
'Fermer',
style: TextStyle(
color: AppTheme.primaryColor,
@@ -269,14 +269,14 @@ class LoginFooter extends StatelessWidget {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
title: Row(
title: const Row(
children: [
Icon(
Icons.info_outline,
color: AppTheme.primaryColor,
),
const SizedBox(width: 12),
const Text('À propos'),
SizedBox(width: 12),
Text('À propos'),
],
),
content: const Text(
@@ -286,7 +286,7 @@ class LoginFooter extends StatelessWidget {
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: Text(
child: const Text(
'Fermer',
style: TextStyle(
color: AppTheme.primaryColor,
@@ -306,14 +306,14 @@ class LoginFooter extends StatelessWidget {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
title: Row(
title: const Row(
children: [
Icon(
Icons.privacy_tip_outlined,
color: AppTheme.warningColor,
),
const SizedBox(width: 12),
const Text('Confidentialité'),
SizedBox(width: 12),
Text('Confidentialité'),
],
),
content: const Text(
@@ -323,7 +323,7 @@ class LoginFooter extends StatelessWidget {
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: Text(
child: const Text(
'Compris',
style: TextStyle(
color: AppTheme.primaryColor,
@@ -342,7 +342,7 @@ class LoginFooter extends StatelessWidget {
children: [
Text(
title,
style: TextStyle(
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: AppTheme.textPrimary,
@@ -351,7 +351,7 @@ class LoginFooter extends StatelessWidget {
const SizedBox(height: 4),
Text(
description,
style: TextStyle(
style: const TextStyle(
fontSize: 12,
color: AppTheme.textSecondary,
),

View File

@@ -189,21 +189,21 @@ class _LoginFormState extends State<LoginForm>
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide(
borderSide: const BorderSide(
color: AppTheme.primaryColor,
width: 2,
),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide(
borderSide: const BorderSide(
color: AppTheme.errorColor,
width: 2,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide(
borderSide: const BorderSide(
color: AppTheme.errorColor,
width: 2,
),
@@ -281,21 +281,21 @@ class _LoginFormState extends State<LoginForm>
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide(
borderSide: const BorderSide(
color: AppTheme.primaryColor,
width: 2,
),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide(
borderSide: const BorderSide(
color: AppTheme.errorColor,
width: 2,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide(
borderSide: const BorderSide(
color: AppTheme.errorColor,
width: 2,
),
@@ -344,7 +344,7 @@ class _LoginFormState extends State<LoginForm>
: Colors.transparent,
),
child: widget.rememberMe
? Icon(
? const Icon(
Icons.check,
size: 14,
color: Colors.white,
@@ -352,7 +352,7 @@ class _LoginFormState extends State<LoginForm>
: null,
),
const SizedBox(width: 8),
Flexible(
const Flexible(
child: Text(
'Se souvenir de moi',
style: TextStyle(
@@ -374,7 +374,7 @@ class _LoginFormState extends State<LoginForm>
HapticFeedback.selectionClick();
_showForgotPasswordDialog();
},
child: Text(
child: const Text(
'Mot de passe oublié ?',
style: TextStyle(
fontSize: 14,
@@ -413,14 +413,14 @@ class _LoginFormState extends State<LoginForm>
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
title: Row(
title: const Row(
children: [
Icon(
Icons.help_outline,
color: AppTheme.primaryColor,
),
const SizedBox(width: 12),
const Text('Mot de passe oublié'),
SizedBox(width: 12),
Text('Mot de passe oublié'),
],
),
content: const Text(
@@ -429,7 +429,7 @@ class _LoginFormState extends State<LoginForm>
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: Text(
child: const Text(
'Compris',
style: TextStyle(
color: AppTheme.primaryColor,