import 'package:email_validator/email_validator.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:woofnwalk/providers/accountAuth.dart';
import 'package:woofnwalk/screens/profile.dart';
import 'package:woofnwalk/screens/maps/walkers_list_screen.dart';
import '../providers/googleSignIn.dart';
class SignUp_LoginPage extends StatefulWidget {
@override
_SignUp_LoginPageState createState() => _SignUp_LoginPageState();
}
class _SignUp_LoginPageState extends State<SignUp_LoginPage> {
final formKey = GlobalKey<FormState>();
TextEditingController _emailController = new TextEditingController();
TextEditingController _passwordController = new TextEditingController();
@override
void dispose(){
_emailController.dispose();
_passwordController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Form(
key: formKey,
child: ListView(
padding: const EdgeInsets.symmetric(horizontal: 24.0),
children: [
const SizedBox(height: 60.0),
Column(
children: <Widget>[
Image.asset(
'images/loginpaw.png',
height: 120,
fit: BoxFit.fitHeight,
),
const SizedBox(height: 30.0),
const Text(
'SIGN UP or LOGIN',
style: TextStyle(fontSize: 25),
),
],
),
//inputs
const SizedBox(height: 60.0),
TextFormField(
controller: _emailController,
decoration: const InputDecoration(
filled: true,
labelText: 'Email',
),
autovalidateMode: AutovalidateMode.onUserInteraction,
validator: (email) =>
email != null && !EmailValidator.validate(email)
?'Enter a valid email'
: null,
),
const SizedBox(height: 12.0),
TextFormField(
controller: _passwordController,
decoration: const InputDecoration(
filled: true,
labelText: 'Password',
),
obscureText: true,
autovalidateMode: AutovalidateMode.onUserInteraction,
validator: (value) =>
value != null && value.length < 6
?'Enter min. 6 characters'
: null,
),
//google sign in
const SizedBox(height: 15.0),
ElevatedButton.icon(
icon: FaIcon(FontAwesomeIcons.google),
label: Text('Sign In with Google'),
onPressed: () async {
final provider = Provider.of<GoogleSignInProvider>(context, listen: false);
await provider.googleLogin();
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=> WalkersList()));
},
),
//buttons
ButtonBar(
children: <Widget>[
TextButton(
child: const Text('CANCEL'),
onPressed: () {
_emailController.clear();
_passwordController.clear();
},
),
ElevatedButton(
child: const Text('SIGN UP'),
onPressed: () {
final String email = _emailController.text.trim();
final String password = _passwordController.text.trim();
final isValid = formKey.currentState!.validate();
if (!isValid) {
return;
} else {
context.read<AuthenticateService>().signUp(email, password);
//Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=> CreateProfile()));
}
},
),
ElevatedButton(
child: const Text('LOGIN'),
onPressed: () {
final String email = _emailController.text.trim();
final String password = _passwordController.text.trim();
final isValid = formKey.currentState!.validate();
if (!isValid) {
return;
} else {
//context.read<AuthenticateService>().login(email, password);
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=> WalkersList()));
}
}
),
],
),
]
)
)
)
);
}
}