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.
91 lines
3.1 KiB
Dart
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');
|
|
},
|
|
);
|
|
}
|
|
}
|