180 lines
7.9 KiB
Dart
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),
|
|
),
|
|
])),
|
|
),
|
|
],
|
|
)),
|
|
],
|
|
)),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
} |