petitspas/frontend/lib/screens/auth/parent_register_step2_screen.dart
Julien Martin f09deb5efc fix(auth): Correction des erreurs de compilation
Corrections des appels de méthodes et des types :

1. Parent Steps 1-2 : Passer des objets ParentData complets
   - updateParent1(ParentData(...)) au lieu de paramètres nommés
   - updateParent2(ParentData(...)) ou null pour supprimer

2. AM Step 1 : Utiliser la bonne méthode
   - updateIdentityInfo() au lieu de updatePersonalInfo()

3. personal_info_form_screen : Corrections widgets
   - Accès correct à widget.stepText
   - Gestion du nullable sur onChanged de AppCustomCheckbox

Ces corrections permettent la compilation sans erreur.
2026-01-28 16:47:10 +01:00

91 lines
3.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:go_router/go_router.dart';
import '../../models/user_registration_data.dart';
import '../../utils/data_generator.dart';
import '../../widgets/personal_info_form_screen.dart';
import '../../models/card_assets.dart';
class ParentRegisterStep2Screen extends StatelessWidget {
const ParentRegisterStep2Screen({super.key});
@override
Widget build(BuildContext context) {
final registrationData = Provider.of<UserRegistrationData>(context, listen: false);
final parent1 = registrationData.parent1;
final parent2 = registrationData.parent2;
bool hasParent2 = parent2 != null;
bool sameAddress = false;
// Générer des données de test si vide
PersonalInfoData initialData;
if (parent2 == null || parent2.firstName.isEmpty) {
final genFirstName = DataGenerator.firstName();
final genLastName = DataGenerator.lastName();
sameAddress = DataGenerator.boolean();
initialData = PersonalInfoData(
firstName: genFirstName,
lastName: genLastName,
phone: DataGenerator.phone(),
email: DataGenerator.email(genFirstName, genLastName),
address: sameAddress ? parent1.address : DataGenerator.address(),
postalCode: sameAddress ? parent1.postalCode : DataGenerator.postalCode(),
city: sameAddress ? parent1.city : DataGenerator.city(),
);
} else {
sameAddress = (parent2.address == parent1.address &&
parent2.postalCode == parent1.postalCode &&
parent2.city == parent1.city);
initialData = PersonalInfoData(
firstName: parent2.firstName,
lastName: parent2.lastName,
phone: parent2.phone,
email: parent2.email,
address: parent2.address,
postalCode: parent2.postalCode,
city: parent2.city,
);
}
// Adresse de référence pour "même adresse"
final referenceAddress = PersonalInfoData(
address: parent1.address,
postalCode: parent1.postalCode,
city: parent1.city,
);
return PersonalInfoFormScreen(
stepText: 'Étape 2/5',
title: 'Deuxième Parent',
cardColor: CardColorHorizontal.blue,
initialData: initialData,
previousRoute: '/parent-register-step1',
showSecondPersonToggle: true,
initialHasSecondPerson: hasParent2,
showSameAddressCheckbox: true,
initialSameAddress: sameAddress,
referenceAddressData: referenceAddress,
onSubmit: (data, {hasSecondPerson, sameAddress}) {
if (hasSecondPerson == true) {
registrationData.updateParent2(ParentData(
firstName: data.firstName,
lastName: data.lastName,
phone: data.phone,
email: data.email,
address: data.address,
postalCode: data.postalCode,
city: data.city,
password: '',
));
} else {
registrationData.updateParent2(null);
}
context.go('/parent-register-step3');
},
);
}
}