2022-05-11 23:41:39 -07:00

180 lines
7.9 KiB
Dart

import 'package:itasmob/presentation/home/index.dart';
import 'package:itasmob/presentation/register/register.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:itasmob/widgets/header_widgets.dart';
import 'package:flutter/material.dart';
import '../common/theme_helper.dart';
class LoginView extends StatefulWidget {
const LoginView({ Key? key }) : super(key: key);
@override
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginView> {
double _headerHeight = 250;
Key _formKey = GlobalKey<FormState>();
late TextEditingController _emailController;
late TextEditingController _passwordController;
@override
void initState() {
super.initState();
_emailController = TextEditingController();
_passwordController = TextEditingController();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: SingleChildScrollView(
child: Column(
children: [
Container(
height: _headerHeight,
child: HeaderWidget(_headerHeight, true, Icons.person),
),
SafeArea(
child: Container(
padding: EdgeInsets.fromLTRB(20, 10, 20, 10),
margin: EdgeInsets.fromLTRB(
20, 10, 20, 10), // This will be the login form
child: Column(
children: [
Text(
'Welcome GoPlanners!',
style: TextStyle(
fontSize: 30,
color: Colors.indigoAccent,
fontWeight: FontWeight.bold),
),
Text(
'',
style: TextStyle(color: Colors.grey),
),
SizedBox(height: 30.0),
Form(
key: _formKey,
child: Column(
children: [
Container(
child: TextField(
controller: _emailController,
decoration: ThemeHelper().textInputDecoration(
'User Name', 'Enter your user name'),
),
decoration:
ThemeHelper().inputBoxDecorationShaddow(),
),
SizedBox(height: 30.0),
Container(
child: TextField(
controller: _passwordController,
obscureText: true,
decoration: ThemeHelper().textInputDecoration(
'Password', 'Enter your password'),
),
decoration:
ThemeHelper().inputBoxDecorationShaddow(),
),
SizedBox(height: 15.0),
Container(
margin: EdgeInsets.fromLTRB(10, 0, 10, 20),
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
HomeView()
),
);
},
child: Text(
"Forgot your password?",
style: TextStyle(
color: Colors.lightBlue,
),
),
),
),
Container(
decoration:
ThemeHelper().buttonBoxDecoration(context),
child: ElevatedButton(
style: ThemeHelper().buttonStyle(),
child: Padding(
padding:
EdgeInsets.fromLTRB(40, 10, 40, 10),
child: Text(
'Sign In'.toUpperCase(),
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.white),
),
),
onPressed: () async {
// await ApiService()
// .loginUser(User(
// email: _emailController.text,
// password: _passwordController.text))
// .then((data) {
// if (data.access_token!.isNotEmpty) {
// Navigator.pushReplacement(
// context,
// MaterialPageRoute(
// builder: (context) =>
// ProfilePage()));
// } else {
// showAlert(
// context: context, title: data.msg);
// }
// ;
// });
//After successful login we will redirect to profile page. Let's create profile page now
},
),
),
Container(
margin: EdgeInsets.fromLTRB(10, 20, 10, 20),
//child: Text('Don\'t have an account? Create'),
child: Text.rich(TextSpan(children: [
TextSpan(text: "Don\'t have an account? "),
TextSpan(
text: 'signup',
recognizer: TapGestureRecognizer()
..onTap = () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
RegisterView()));
},
style: TextStyle(
fontWeight: FontWeight.bold,
color: Theme.of(context).accentColor),
),
])),
),
],
)),
],
)),
),
],
),
),
);
}
}