Skip to content

Commit 8c3d7dc

Browse files
committed
🔒 add google login buton on sign up.
1 parent 2402c4f commit 8c3d7dc

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

lib/page/Auth/signup.dart

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ import 'package:flutter/material.dart';
33
import 'package:flutter_twitter_clone/helper/constant.dart';
44
import 'package:flutter_twitter_clone/helper/enum.dart';
55
import 'package:flutter_twitter_clone/helper/theme.dart';
6+
import 'package:flutter_twitter_clone/helper/utility.dart';
67
import 'package:flutter_twitter_clone/model/user.dart';
78
import 'package:flutter_twitter_clone/state/authState.dart';
89
import 'package:flutter_twitter_clone/widgets/customWidgets.dart';
910
import 'package:flutter_twitter_clone/widgets/newWidget/customLoader.dart';
11+
import 'package:flutter_twitter_clone/widgets/newWidget/title_text.dart';
1012
import 'package:provider/provider.dart';
1113

1214
class Signup extends StatefulWidget {
@@ -61,6 +63,9 @@ class _SignupState extends State<Signup> {
6163
_entryFeild('Confirm password',
6264
controller: _confirmController, isPassword: true),
6365
_submitButton(context),
66+
67+
Divider(),
68+
_googleLoginButton(context)
6469
],
6570
),
6671
),
@@ -112,6 +117,40 @@ class _SignupState extends State<Signup> {
112117
);
113118
}
114119

120+
Widget _googleLoginButton(BuildContext context) {
121+
return Container(
122+
alignment: Alignment.center,
123+
margin: EdgeInsets.symmetric(vertical: 35),
124+
child: Row(
125+
mainAxisAlignment: MainAxisAlignment.center,
126+
children: <Widget>[
127+
MaterialButton(
128+
elevation: 2,
129+
shape:
130+
RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
131+
color: Colors.white,
132+
onPressed: _googleLogin,
133+
padding: EdgeInsets.symmetric(horizontal: 30, vertical: 10),
134+
child: Row(
135+
children: <Widget>[
136+
Image.asset(
137+
'assets/images/google_logo.png',
138+
height: 20,
139+
width: 20,
140+
),
141+
SizedBox(width: 10),
142+
TitleText(
143+
'Continue with Google',
144+
color: Colors.black54,
145+
),
146+
],
147+
),
148+
),
149+
],
150+
),
151+
);
152+
}
153+
115154
void _submitForm() {
116155
if (_emailController.text == null ||
117156
_emailController.text.isEmpty ||
@@ -160,6 +199,25 @@ class _SignupState extends State<Signup> {
160199
);
161200
}
162201

202+
void _googleLogin() {
203+
var state = Provider.of<AuthState>(context);
204+
if (state.isbusy) {
205+
return;
206+
}
207+
loader.showLoader(context);
208+
state.handleGoogleSignIn().then((status) {
209+
// print(status)
210+
if (state.user != null) {
211+
loader.hideLoader();
212+
Navigator.pop(context);
213+
widget.loginCallback();
214+
} else {
215+
loader.hideLoader();
216+
cprint('Unable to login', errorIn: '_googleLoginButton');
217+
}
218+
});
219+
}
220+
163221
@override
164222
Widget build(BuildContext context) {
165223
return Scaffold(

0 commit comments

Comments
 (0)