update login

parent 229a58d9
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class LoadingView {
BuildContext context;
LoadingView(this.context);
show() {
showCupertinoModalPopup(
context: this.context,
builder: (context) => Container(
color: Colors.black87.withOpacity(0.3),
alignment: Alignment.center,
child: CircularProgressIndicator(
valueColor: new AlwaysStoppedAnimation<Color>(Colors.greenAccent),)
),
);
}
hide(){
Navigator.pop(context);
}
}
import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/login/login_presenter.dart';
//import 'package:feelverapp/ui/login/login_presenter.dart';
......@@ -21,9 +22,19 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
presenter = LoginPresenter(this);
presenter.letSignIn();
_tabController = TabController(length: 2, vsync: this);
_tabController.addListener(_handleTabSelection);
// registerBloc = RegisterBloc(this);
// loginBloc = LoginBloc(this);
}
void _handleTabSelection() {
setState(() {});
}
@override
void dispose() {
super.dispose();
_tabController.dispose();
}
@override
Widget build(BuildContext context) {
......@@ -75,14 +86,27 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
],
),
SizedBox(height: SizeConfig.getWidth(30)),
_formLogin(),
_phoneLogin(),
new Container(
height: double.maxFinite,
child: new TabBarView(
controller: _tabController,
children: <Widget>[
_formLogin(),
_phoneLogin()
],
),
),
// _phoneLogin(),
],
),
);
}
Widget _formLogin() {
print("index = " +"${_tabController.index}");
return Container(
child: Form(
child: Column(
......@@ -111,7 +135,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
),
),
child: TextFormField(
// controller: loginBloc.emailCtrl,
controller: presenter.emailCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
......@@ -150,7 +174,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
BorderRadius.circular(SizeConfig.getPadding(50.0)),
),
child: TextFormField(
// controller: loginBloc.passCtrl,
controller: presenter.passCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
......@@ -193,6 +217,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
}
Widget _phoneLogin() {
print("index = " +"${_tabController.index}");
return Container(
child: Form(
child: Column(
......@@ -314,10 +339,12 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
padding: EdgeInsets.all(0),
borderRadius: BorderRadius.all(Radius.circular(50)),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => HomePage()),
);
presenter.onSignIn();
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) => HomePage()),
// );
// if (loginBloc.formKey.currentState.validate()) {
// loginBloc.getLogin();
// }
......
......@@ -2,12 +2,15 @@ import 'dart:developer';
import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/service/Alert.dart';
import 'package:feelverapp/service/Loading.dart';
import 'package:feelverapp/service/api.dart';
import 'package:feelverapp/service/base_presenter.dart';
import 'package:feelverapp/ui/login/login.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
......@@ -25,35 +28,110 @@ class LoginPresenter extends BasePresenter<LoginPage> {
LoginPresenter(State<LoginPage> state) : super(state);
onSignIn() async {
if (formKey.currentState.validate()) {
await letSignIn();
if (emailCtrl.text.isEmpty) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: "กรุณากรอกอีเมล์",
content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
}
if (passCtrl.text.isEmpty) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: "กรุณากรอกรหัสผ่าน",
content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
}
else letSignIn();
}
letSignIn() async {
LoadingView(state.context).show();
_api = Api<LoginModel>();
var res = await _api.login({
"access_type":"portal",
"access_status":"customer",
"email": "api@feelver.com",
'password': "\$J3M{GfzNW7EhwxP",
"email": emailCtrl.text,
'password':passCtrl.text
});
LoadingView(state.context).hide();
if (res.fail == null) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: "เข้าสู่ระบบสำเร็จ",
content: Icon(Icons.check_circle,color: Color.fromRGBO(106, 179, 170, 1),size: 80,),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
LoginModel model = res.success;
// print("Username ="+"${model.user}");
print("Token ="+"${model.token}");
} else {
Alert(
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
message:'email_or_password_invalid'
);
title: "อีเมล์หรือรหัสผ่านผิด",
content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context),
child: Text(
"ลองอีกครั้ง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
}
}
......
......@@ -151,6 +151,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
rflutter_alert:
dependency: "direct main"
description:
name: rflutter_alert
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.3"
sky_engine:
dependency: transitive
description: flutter
......
......@@ -26,6 +26,7 @@ dependencies:
flutter_screenutil: ^1.0.2
http: ^0.12.0+4
json_annotation: ^3.0.1
rflutter_alert: ^1.0.3
dev_dependencies:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment