Squash merge develop into master (câblage inscription AM #91)

Made-with: Cursor
This commit is contained in:
2026-02-26 21:21:17 +01:00
parent f749484731
commit aefe590d2c
3 changed files with 98 additions and 18 deletions
@@ -7,6 +7,7 @@ import 'dart:math' as math;
import '../../models/am_registration_data.dart';
import '../../models/card_assets.dart';
import '../../config/display_config.dart';
import '../../services/auth_service.dart';
import '../../widgets/hover_relief_widget.dart';
import '../../widgets/image_button.dart';
import '../../widgets/custom_navigation_button.dart';
@@ -22,6 +23,28 @@ class AmRegisterStep4Screen extends StatefulWidget {
}
class _AmRegisterStep4ScreenState extends State<AmRegisterStep4Screen> {
bool _isSubmitting = false;
Future<void> _submitAMRegistration(AmRegistrationData registrationData) async {
if (_isSubmitting) return;
setState(() => _isSubmitting = true);
try {
await AuthService.registerAM(registrationData);
if (!mounted) return;
_showConfirmationModal(context);
} catch (e) {
if (!mounted) return;
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(e is Exception ? e.toString().replaceFirst('Exception: ', '') : 'Erreur lors de l\'inscription'),
backgroundColor: Colors.red.shade700,
),
);
} finally {
if (mounted) setState(() => _isSubmitting = false);
}
}
@override
Widget build(BuildContext context) {
final registrationData = Provider.of<AmRegistrationData>(context);
@@ -90,12 +113,9 @@ class _AmRegisterStep4ScreenState extends State<AmRegisterStep4Screen> {
Expanded(
child: HoverReliefWidget(
child: CustomNavigationButton(
text: 'Soumettre',
text: _isSubmitting ? 'Envoi...' : 'Soumettre',
style: NavigationButtonStyle.green,
onPressed: () {
print("Données AM finales: ${registrationData.firstName} ${registrationData.lastName}");
_showConfirmationModal(context);
},
onPressed: () => _submitAMRegistration(registrationData),
width: double.infinity,
height: 50,
fontSize: 16,
@@ -106,17 +126,14 @@ class _AmRegisterStep4ScreenState extends State<AmRegisterStep4Screen> {
),
)
else
ImageButton(
ImageButton(
bg: 'assets/images/bg_green.png',
text: 'Soumettre ma demande',
text: _isSubmitting ? 'Envoi...' : 'Soumettre ma demande',
textColor: const Color(0xFF2D6A4F),
width: 350,
height: 50,
fontSize: 18,
onPressed: () {
print("Données AM finales: ${registrationData.firstName} ${registrationData.lastName}");
_showConfirmationModal(context);
},
onPressed: () => _submitAMRegistration(registrationData),
),
],
),