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,
        );
      },
    );
  }
}
