Files
2021-03-31 22:10:42 +02:00

121 lines
4.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:le_kiosque_by_gcs/model/user.dart';
import 'package:le_kiosque_by_gcs/services/auth/auth.dart';
import 'package:le_kiosque_by_gcs/services/firestore/user_service.dart';
import 'package:provider/provider.dart';
import '../custom/custom_elevated_button.dart';
class AuthView extends StatelessWidget {
Future<void> _signWithGoogle(context) async {
final auth = Provider.of<Auth>(context, listen: false);
final userService = Provider.of<UserService>(context, listen: false);
try {
final firebaseUser = await auth.signInWithGoogle();
if (firebaseUser.metadata.creationTime == firebaseUser.metadata.lastSignInTime) {
final kiosqueUser = toKiosqueUser(firebaseUser);
await userService.save(kiosqueUser);
}
} catch (e) {
print("Error $e");
}
}
Future<void> _signInWithFacebook(context) async {
final auth = Provider.of<Auth>(context, listen: false);
final userService = Provider.of<UserService>(context, listen: false);
try {
final firebaseUser = await auth.signInWithFacebook();
if (firebaseUser.metadata.creationTime == firebaseUser.metadata.lastSignInTime) {
final kiosqueUser = toKiosqueUser(firebaseUser);
await userService.save(kiosqueUser);
}
} catch (e) {
print("Error $e");
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[200],
resizeToAvoidBottomInset: false,
body: ListView(
children: [
Container(
height: 470,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/images/login_back.png"),
fit: BoxFit.cover,
),
),
),
Expanded(
child: Transform.translate(
offset: Offset(0, -50),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: Colors.grey[200],
borderRadius: BorderRadius.only(
topLeft: Radius.circular(30),
topRight: Radius.circular(30),
),
),
child: Padding(
padding: const EdgeInsets.only(
top: 32,
left: 24,
right: 24,
bottom: 24,
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
"S'identifier",
style: TextStyle(
fontSize: 26,
fontWeight: FontWeight.bold,
color: Colors.black,
inherit: false),
),
SizedBox(height: 32),
CustomElevatedButton(
imageAsset: "assets/images/google_logo.png",
color: Colors.white,
textColor: Colors.black,
onPressed: () => _signWithGoogle(context),
text: "Se connecter avec Google",
),
SizedBox(height: 24),
CustomElevatedButton(
imageAsset: "assets/images/facebook_logo.png",
color: Color(0xFF334D92),
textColor: Colors.white,
onPressed: () => _signInWithFacebook(context),
text: "Se connecter avec Facebook",
),
SizedBox(height: 24),
Text(
"En vous connectant, vous acceptez nos termes et conditions d'utilisation.",
style: TextStyle(
inherit: false,
color: Colors.black87,
),
)
],
),
),
),
),
)
],
),
);
}
}