Refactorisation des écrans d'inscription pour utiliser les nouveaux widgets : Parent Step 1 (227 → 65 lignes, -71%) - Utilise personal_info_form_screen - Conserve préremplissage des données de test - Couleur : peach Parent Step 2 (273 → 90 lignes, -67%) - Utilise personal_info_form_screen - Toggle "Il y a un 2ème parent" - Checkbox "Même adresse que parent 1" - Couleur : blue Parent Step 4 (247 → 42 lignes, -83%) - Utilise presentation_form_screen - Formulaire de motivation - Couleur : green AM Step 1 (209 → 65 lignes, -69%) - Utilise personal_info_form_screen - Conserve préremplissage des données de test - Couleur : blue AM Step 3 (195 → 45 lignes, -77%) - Utilise presentation_form_screen - Formulaire de présentation - Couleur : peach Total : -709 lignes de code maintenable !
66 lines
2.1 KiB
Dart
66 lines
2.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 ParentRegisterStep1Screen extends StatelessWidget {
|
|
const ParentRegisterStep1Screen({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final registrationData = Provider.of<UserRegistrationData>(context, listen: false);
|
|
final parent1 = registrationData.parent1;
|
|
|
|
// Générer des données de test si vide
|
|
PersonalInfoData initialData;
|
|
if (parent1.firstName.isEmpty) {
|
|
final genFirstName = DataGenerator.firstName();
|
|
final genLastName = DataGenerator.lastName();
|
|
initialData = PersonalInfoData(
|
|
firstName: genFirstName,
|
|
lastName: genLastName,
|
|
phone: DataGenerator.phone(),
|
|
email: DataGenerator.email(genFirstName, genLastName),
|
|
address: DataGenerator.address(),
|
|
postalCode: DataGenerator.postalCode(),
|
|
city: DataGenerator.city(),
|
|
);
|
|
} else {
|
|
initialData = PersonalInfoData(
|
|
firstName: parent1.firstName,
|
|
lastName: parent1.lastName,
|
|
phone: parent1.phone,
|
|
email: parent1.email,
|
|
address: parent1.address,
|
|
postalCode: parent1.postalCode,
|
|
city: parent1.city,
|
|
);
|
|
}
|
|
|
|
return PersonalInfoFormScreen(
|
|
stepText: 'Étape 1/5',
|
|
title: 'Informations du Parent Principal',
|
|
cardColor: CardColorHorizontal.peach,
|
|
initialData: initialData,
|
|
previousRoute: '/register-choice',
|
|
onSubmit: (data, {hasSecondPerson, sameAddress}) {
|
|
registrationData.updateParent1(
|
|
firstName: data.firstName,
|
|
lastName: data.lastName,
|
|
phone: data.phone,
|
|
email: data.email,
|
|
address: data.address,
|
|
postalCode: data.postalCode,
|
|
city: data.city,
|
|
password: '',
|
|
);
|
|
context.go('/parent-register-step2');
|
|
},
|
|
);
|
|
}
|
|
}
|