petitspas/frontend/lib/screens/auth/reset_password_screen.dart
Julien Martin 644ba6c9c9 refactor(front): mutualiser les formulaires token password (#127)
Extrait un composant commun PasswordTokenFormScreen pour les pages create/reset password, conserve les comportements métier via wrappers (verify/create vs reset) et active la soumission sur Entrée dans mot de passe oublié.

Made-with: Cursor
2026-04-24 12:03:43 +02:00

44 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import '../../services/auth_service.dart';
import 'password_token_form_screen.dart';
/// Réinitialisation du mot de passe via lien e-mail (ticket #127, distinct de [CreatePasswordScreen]).
class ResetPasswordScreen extends StatelessWidget {
final String? token;
const ResetPasswordScreen({super.key, this.token});
String _neutralResetFeedback(String raw) {
final l = raw.toLowerCase();
if (l.contains('token') || l.contains('invalide') || l.contains('expir')) {
return 'Lien invalide ou expiré.';
}
return raw;
}
@override
Widget build(BuildContext context) {
return PasswordTokenFormScreen(
token: token,
title: 'Nouveau mot de passe',
subtitle: 'Choisissez un mot de passe pour votre compte.',
submitLabel: 'Enregistrer',
successMessage: 'Mot de passe mis à jour. Vous pouvez vous connecter.',
invalidTokenTitle: 'Réinitialisation',
mapError: _neutralResetFeedback,
onSubmit: ({
required String token,
required String password,
required String passwordConfirmation,
}) {
return AuthService.resetPasswordWithToken(
token: token,
password: password,
passwordConfirmation: passwordConfirmation,
);
},
);
}
}