Enhance Google and Apple sign-up methods to include name and firstname parameters

This commit is contained in:
Van Leemput Dayron
2025-11-06 11:28:18 +01:00
parent fa7daca50a
commit 75bdf591f3
6 changed files with 205 additions and 75 deletions

View File

@@ -3,6 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:sign_in_button/sign_in_button.dart';
import 'package:travel_mate/components/loading/laoding_content.dart';
import 'package:travel_mate/components/signup/sign_up_platform_content.dart';
import 'package:travel_mate/services/auth_service.dart';
import '../blocs/auth/auth_bloc.dart';
import '../blocs/auth/auth_event.dart';
import '../blocs/auth/auth_state.dart';
@@ -28,6 +29,7 @@ class _SignUpPageState extends State<SignUpPage> {
bool _obscureConfirmPassword = true;
final _errorService = ErrorService();
final _authService = AuthService();
@override
void dispose() {
@@ -327,20 +329,38 @@ class _SignUpPageState extends State<SignUpPage> {
MaterialPageRoute(
builder: (context) => LoadingContent(
onBackgroundTask: () async {
// Effectuer la requête vers Google
final platformData = await _fetchGoogleSignInData();
return platformData;
// Effectuer la requête vers Google et donner les informations de l'utilisateur pour le signup
await _authService.signInWithGoogle();
},
onComplete: () {
// Fermer le loading et naviguer vers SignUpPlatformContent
Navigator.pop(context); // Fermer LoadingContent
Navigator.push(
Navigator.pop(
context,
MaterialPageRoute(
builder: (context) =>
SignUpPlatformContent(platform: 'google'),
),
);
); // Fermer LoadingContent
final user = _authService.currentUser;
if (user != null) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
SignUpPlatformContent(
platform: 'google',
email: user.email ?? '',
firstName:
user.displayName
?.split(' ')
.first ??
'Prénom',
name:
user.displayName
?.split(' ')
.skip(1)
.join(' ') ??
'Nom',
),
),
);
}
},
),
),
@@ -360,19 +380,38 @@ class _SignUpPageState extends State<SignUpPage> {
builder: (context) => LoadingContent(
onBackgroundTask: () async {
// Effectuer la requête vers Google
final platformData = await
return platformData;
await _authService.signInWithApple();
},
onComplete: () {
// Fermer le loading et naviguer vers SignUpPlatformContent
Navigator.pop(context); // Fermer LoadingContent
Navigator.push(
Navigator.pop(
context,
MaterialPageRoute(
builder: (context) =>
SignUpPlatformContent(platform: 'apple'),
),
);
); // Fermer LoadingContent
final user = _authService.currentUser;
if (user != null) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
SignUpPlatformContent(
platform: 'apple',
email: user.email ?? '',
firstName:
user.displayName
?.split(' ')
.first ??
'Prénom',
name:
user.displayName
?.split(' ')
.skip(1)
.join(' ') ??
'Nom',
),
),
);
}
},
),
),