no message

parent 14002e85
......@@ -3,21 +3,18 @@ class LoginModel {
int expires;
User user;
LoginModel({this.token,
this.expires,
this.user
});
LoginModel({this.token, this.expires, this.user});
LoginModel.fromJson(Map<String, dynamic> json) {
token = json['token'];
expires = json['expires'];
user = json['user'] != null ? new User.fromJson(json['user']) : null;
user = json['user'] != null ? new User.fromJson(json['user']) : null;
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['token'] = this.token;
data['expires'] = this.expires;
data['expires'] = this.expires;
if (this.user != null) {
data['user'] = this.user.toJson();
}
......@@ -27,17 +24,17 @@ class LoginModel {
class User {
int id;
String roleId;
Null roleId;
String name;
String email;
String avatar;
String emailVerifiedAt;
Null emailVerifiedAt;
int status;
int fvRoleId;
String settings;
String createdAt;
String updatedAt;
String customerInfo;
Null settings;
Null createdAt;
Null updatedAt;
CustomerInfo customerInfo;
User(
{this.id,
......@@ -65,23 +62,112 @@ class User {
settings = json['settings'];
createdAt = json['created_at'];
updatedAt = json['updated_at'];
customerInfo = json['customer_info'];
customerInfo = json['customer_info'] != null
? new CustomerInfo.fromJson(json['customer_info'])
: null;
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id']= this.id;
data['role_id']==null?[]: data['role_id'] = this.roleId;
data['id'] = this.id;
data['role_id'] = this.roleId;
data['name'] = this.name;
data['email'] = this.email;
data['avatar'] = this.avatar;
data['email_verified_at']==null?[]: data['email_verified_at'] = this.emailVerifiedAt;
data['email_verified_at'] = this.emailVerifiedAt;
data['status'] = this.status;
data['fv_role_id'] = this.fvRoleId;
data['settings']==null?[]: data['settings'] = this.settings;
data['created_at']==null?[]: data['created_at'] = this.createdAt;
data['updated_at']==null?[]: data['updated_at'] = this.updatedAt;
data['customer_info']==null?[]: data['customer_info'] = this.customerInfo;
data['settings'] = this.settings;
data['created_at'] = this.createdAt;
data['updated_at'] = this.updatedAt;
if (this.customerInfo != null) {
data['customer_info'] = this.customerInfo.toJson();
}
return data;
}
}
class CustomerInfo {
int id;
String prefix;
String name;
String lastname;
String displayName;
String image;
String email;
String age;
String sex;
String phone;
String address;
String socialRegister;
String socialType;
String status;
String approved;
String createdAt;
String updatedAt;
int userId;
CustomerInfo(
{this.id,
this.prefix,
this.name,
this.lastname,
this.displayName,
this.image,
this.email,
this.age,
this.sex,
this.phone,
this.address,
this.socialRegister,
this.socialType,
this.status,
this.approved,
this.createdAt,
this.updatedAt,
this.userId});
CustomerInfo.fromJson(Map<String, dynamic> json) {
id = json['id'];
prefix = json['prefix'];
name = json['name'];
lastname = json['lastname'];
displayName = json['display_name'];
image = json['image'];
email = json['email'];
age = json['age'];
sex = json['sex'];
phone = json['phone'];
address = json['address'];
socialRegister = json['social_register'];
socialType = json['social_type'];
status = json['status'];
approved = json['approved'];
createdAt = json['created_at'];
updatedAt = json['updated_at'];
userId = json['user_id'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['prefix'] = this.prefix;
data['name'] = this.name;
data['lastname'] = this.lastname;
data['display_name'] = this.displayName;
data['image'] = this.image;
data['email'] = this.email;
data['age'] = this.age;
data['sex'] = this.sex;
data['phone'] = this.phone;
data['address'] = this.address;
data['social_register'] = this.socialRegister;
data['social_type'] = this.socialType;
data['status'] = this.status;
data['approved'] = this.approved;
data['created_at'] = this.createdAt;
data['updated_at'] = this.updatedAt;
data['user_id'] = this.userId;
return data;
}
}
\ No newline at end of file
}
class RegisterModel {
String message;
RegisterModel({this.message});
RegisterModel.fromJson(Map<String, dynamic> json) {
message = json['message'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['message'] = this.message;
return data;
}
}
......@@ -2,6 +2,7 @@ import 'dart:convert';
import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/model/base/base.dart';
import 'package:feelverapp/model/register/register_model.dart';
import 'package:http/http.dart' as http;
......@@ -39,6 +40,27 @@ class Api<T>{
return result;
}
Future<Response<T>> register(Object body) async {
var _model;
var _fail;
var result;
// (body as Map)['lang'] = allTranslations.currentLanguage;
await _httpConnection(
"${this._baseApi}/register", this._headerApi, body)
.then((response) {
print("ผลลัพ เท่ากับบบบ "+"${response.body}");
if (response.statusCode == 200 ) {
_model = RegisterModel.fromJson(json.decode(response.body));
} else {
_fail = FailModel.fromJson(json.decode(response.body));
}
result = new Response<T>(_model, _fail);
});
return result;
}
///api environment
......
import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/login/login_presenter.dart';
//import 'package:feelverapp/ui/login/login_presenter.dart';
import 'package:feelverapp/ui/register/register_email.dart';
//import 'package:feelverapp/ui/login/login_presenter.dart';
import 'package:feelverapp/util/SizeConfig.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
......@@ -404,11 +405,11 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
size: 20,
),
),
Text(
'Login with Facebook',
style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
textAlign: TextAlign.center,
),
// Text(
// 'Login with Facebook',
// style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
// textAlign: TextAlign.center,
// ),
],
),
),
......@@ -453,13 +454,15 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
Container(
alignment: Alignment.centerRight,
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterPage()),
MaterialPageRoute(builder: (context) => Registerpage()),
);
},
child: Text(
......
import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/login/login.dart';
import 'package:feelverapp/ui/login/login_presenter.dart';
//import 'package:feelverapp/ui/login/login_presenter.dart';
import 'package:feelverapp/ui/register/register_email.dart';
import 'package:feelverapp/ui/register/register_presenter.dart';
import 'package:feelverapp/util/SizeConfig.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class RegisterPage extends StatefulWidget {
class Registerpage extends StatefulWidget {
@override
_RegisterPageState createState() => _RegisterPageState();
_RegisterpageState createState() => _RegisterpageState();
}
class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMixin {
@override
class _RegisterpageState extends State<Registerpage> with TickerProviderStateMixin {
TabController _tabController;
RegisterPresenter presenter;
@override
void initState() {
// TODO: implement initState
super.initState();
presenter = RegisterPresenter(this);
_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) {
SizeConfig(context);
return Scaffold(
body: _setupView(),
);
}
_setupView() {
return SingleChildScrollView(
return Container(
child: Column(
children: <Widget>[
Container(
......@@ -72,14 +90,37 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
],
),
SizedBox(height: SizeConfig.getWidth(30)),
_formLogin(),
Expanded(
child: new Container(
// height: double.maxFinite,
child: new TabBarView(
controller: _tabController,
children: <Widget>[
_formLogin(),
_phoneregis()
// Container(
// color: Colors.red,
// ),
// Container(
// color: Colors.green,
// ),
],
),
),
),
// _phoneLogin(),
],
),
);
}
Widget _formLogin() {
return Container(
print("index = " +"${_tabController.index}");
return SingleChildScrollView(
child: Form(
child: Column(
children: <Widget>[
......@@ -107,7 +148,8 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
),
),
child: TextFormField(
// controller: loginBloc.emailCtrl,
controller: presenter.emailCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
......@@ -143,10 +185,10 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
child: Card(
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(SizeConfig.getPadding(50.0)),
BorderRadius.circular(SizeConfig.getPadding(50.0)),
),
child: TextFormField(
// controller: loginBloc.passCtrl,
controller: presenter.passCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
......@@ -161,7 +203,7 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
),
),
),
Container(
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.only(left: SizeConfig.getPadding(30)),
child: Text(
......@@ -175,17 +217,15 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
),
Padding(
padding: EdgeInsets.symmetric(
vertical: SizeConfig.getPadding(8.0),
horizontal: SizeConfig.getPadding(24),
),
vertical: SizeConfig.getPadding(8.0),
horizontal: SizeConfig.getPadding(24)),
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(
SizeConfig.getPadding(50.0),
),
borderRadius:
BorderRadius.circular(SizeConfig.getPadding(50.0)),
),
child: TextFormField(
// controller: loginBloc.emailCtrl,
controller: presenter.firstnameCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
......@@ -193,15 +233,14 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
horizontal: SizeConfig.getPadding(16),
),
// hintText:
// allTranslations.text(key2: 'email', key: 'login') +
// ' / ' +
// allTranslations.text(
// key2: 'tel_number', key: 'register'),
// allTranslations.text(key2: 'password', key: 'login'),
border: OutlineInputBorder(borderSide: BorderSide.none),
),
),
),
), Container(
),
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.only(left: SizeConfig.getPadding(30)),
child: Text(
......@@ -215,6 +254,61 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
),
Padding(
padding: EdgeInsets.symmetric(
vertical: SizeConfig.getPadding(8.0),
horizontal: SizeConfig.getPadding(24)),
child: Card(
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(SizeConfig.getPadding(50.0)),
),
child: TextFormField(
controller: presenter.lastnameCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
vertical: SizeConfig.getPadding(20),
horizontal: SizeConfig.getPadding(16),
),
// hintText:
// allTranslations.text(key2: 'password', key: 'login'),
border: OutlineInputBorder(borderSide: BorderSide.none),
),
),
),
),
SizedBox(
height: SizeConfig.getWidth(24),
),
_submitLoginButton(),
],
),
),
);
}
Widget _phoneregis() {
print("index = " +"${_tabController.index}");
return SingleChildScrollView(
child: Form(
child: Column(
children: <Widget>[
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.only(left: SizeConfig.getPadding(30)),
child: Text(
'เบอร์โทร',
style: TextStyle(
color: Colors.black,
fontSize: SizeConfig.getFontSize(20),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w500),
),
),
Padding(
padding: EdgeInsets.symmetric(
vertical: SizeConfig.getPadding(8.0),
horizontal: SizeConfig.getPadding(24),
),
......@@ -225,7 +319,7 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
),
),
child: TextFormField(
// controller: loginBloc.emailCtrl,
controller: presenter.phonenumberCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
......@@ -242,15 +336,49 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
),
),
),
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.only(left: SizeConfig.getPadding(30)),
child: Text(
'รหัสผ่าน',
style: TextStyle(
color: Colors.black,
fontSize: SizeConfig.getFontSize(20),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w500),
),
),
Padding(
padding: EdgeInsets.symmetric(
vertical: SizeConfig.getPadding(8.0),
horizontal: SizeConfig.getPadding(24)),
child: Card(
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(SizeConfig.getPadding(50.0)),
),
child: TextFormField(
controller: presenter.passCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
vertical: SizeConfig.getPadding(20),
horizontal: SizeConfig.getPadding(16),
),
// hintText:
// allTranslations.text(key2: 'password', key: 'login'),
border: OutlineInputBorder(borderSide: BorderSide.none),
),
obscureText: true,
),
),
),
SizedBox(
height: SizeConfig.getWidth(24),
),
_submitLoginButton(),
_policyText(),
SizedBox(
height: SizeConfig.getWidth(20),
),
_facebookLoginButton(),
],
),
),
......@@ -260,7 +388,7 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
_submitLoginButton() {
return Padding(
padding: EdgeInsets.symmetric(
vertical: SizeConfig.getPadding(10.0),
vertical: SizeConfig.getPadding(20.0),
horizontal: SizeConfig.getPadding(32)),
child: Container(
height: SizeConfig.getWidth(55),
......@@ -269,10 +397,17 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
padding: EdgeInsets.all(0),
borderRadius: BorderRadius.all(Radius.circular(50)),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => LoginPage()),
);
if (_tabController.index==0){
presenter.letCheckData();}
else{
presenter.letCheckData_phone();
}
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) => HomePage()),
// );
// if (loginBloc.formKey.currentState.validate()) {
// loginBloc.getLogin();
// }
......@@ -288,144 +423,6 @@ class _RegisterPageState extends State<RegisterPage> with TickerProviderStateMix
);
}
Widget _facebookLoginButton() {
return Padding(
padding: EdgeInsets.symmetric(
vertical: SizeConfig.getPadding(16.0),
horizontal: SizeConfig.getPadding(32)),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(SizeConfig.getPadding(50)),
color: Color(0xff3b5998),
),
height: SizeConfig.getWidth(55),
child: CupertinoButton(
color: Color(0xff3b5998),
padding: EdgeInsets.all(0),
// onPressed: loginBloc.getFacebookLogin,
child: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: EdgeInsets.symmetric(
horizontal: SizeConfig.getPadding(8.0)),
child: ImageIcon(
AssetImage('assets/images/facebook-icon.png'),
size: 20,
),
),
Text(
'Login with Facebook',
style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
textAlign: TextAlign.center,
),
],
),
),
),
),
);
}
Widget _policyText() {
return Column(
children: <Widget>[
Stack(
children: <Widget>[
Container(
padding: EdgeInsets.only(
left: SizeConfig.getPadding(30),
right: SizeConfig.getPadding(30),
top: SizeConfig.getPadding(30)),
child: Center(
child: Text(
'คุณยอมรับ ข้อกำหนดการใช้งาน และ นโยบายความเป็นส่วนตัว ของอโกด้าเมื่อดำเนินการต่อ',
style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
textAlign: TextAlign.center,
),
),
),
Container(
margin: EdgeInsets.only(
right: SizeConfig.getPadding(34),
top: SizeConfig.getPadding(47)),
alignment: Alignment.centerRight,
child: GestureDetector(
onTap: () {
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) => RegisterPage()),
// );
},
child: Text(
'สมัครสมาชิก',
style: TextStyle(
color: Colors.orange,
fontSize: SizeConfig.getFontSize(12),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w600,
decoration: TextDecoration.underline,
),
textAlign: TextAlign.right,
),
),
)
],
),
Container(
padding: EdgeInsets.all(SizeConfig.getPadding(24)),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
flex: 2,
child: Container(
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(width: 1, color: Color(0xFFE6E6E6)),
),
),
),
),
Expanded(
flex: 1,
child: Text(
'หรือ',
style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
textAlign: TextAlign.center,
),
),
Expanded(
flex: 2,
child: Container(
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(width: 1, color: Color(0xFFE6E6E6)),
),
),
),
),
],
),
),
Stack(
children: <Widget>[
Container(
padding: EdgeInsets.only(
left: SizeConfig.getPadding(60),
right: SizeConfig.getPadding(60)),
child: Center(
child: Text(
'สะดวกสุดๆ แค่ใช้ Facebook เข้าสู่ระบบ ก็ไม่ต้องจำรหัสผ่านอีกต่อไป คลิกปุ่มด้านล่างได้เลย',
style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
textAlign: TextAlign.center,
),
),
),
],
),
],
);
}
}
import 'dart:async';
import 'dart:developer';
import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/model/register/register_model.dart';
import 'package:feelverapp/service/Loading.dart';
import 'package:feelverapp/service/api.dart';
import 'package:feelverapp/service/base_presenter.dart';
import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/login/login.dart';
import 'package:feelverapp/ui/register/register_email.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
class RegisterPresenter extends BasePresenter<Registerpage> {
Api _api;
Timer _timer;
final formKey = GlobalKey<FormState>();
TextEditingController emailCtrl = TextEditingController();
TextEditingController passCtrl = TextEditingController();
TextEditingController firstnameCtrl = TextEditingController();
TextEditingController lastnameCtrl = TextEditingController();
TextEditingController phonenumberCtrl = TextEditingController();
RegisterPresenter(State<Registerpage> state) : super(state);
/////email Login/////////
letCheckData() async {
try {
if (emailCtrl.text.isEmpty ) throw ('กรุณากรอก\nอีเมล์');
else if (passCtrl.text.isEmpty ) throw('กรุณากรอก\nรหัสผ่าน');
else if(firstnameCtrl.text.isEmpty) throw('กรุณากรอกชื่อ');
else if(lastnameCtrl.text.isEmpty) throw('กรุณากรอกนามสกุล');
Pattern pattern =
r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+";
RegExp regex = new RegExp(pattern);
if (!regex.hasMatch(emailCtrl.text))
throw ('รูปแบบอีเมล์\nไม่ถูกต้อง');
Pattern pattern2 =
r'^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$';
RegExp regex2 = new RegExp(pattern2);
if (!regex2.hasMatch(passCtrl.text))
throw ('รหัสผ่านต้องมีความยาวอย่าง น้อย 8 ตัวอักษร และต้องประกอบด้วยอักขระ ดังต่อไปนี้\n- ตัวอักษรภาษาอังกฤษ ตัวพิมพ์เล็ก (a-z) \n- ตัวอักษรภาษาอังกฤษ ตัวพิมพ์ใหญ่ (A-Z) \n- ตัวเลข (0-9)');
else {
await letregis();
print("complete");
}
} catch (e) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: '$e',
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();
}
}
letregis() async {
LoadingView(state.context).show();
_api = Api<RegisterModel>();
var res = await _api.register({
"access_type":"mobile",
"name":firstnameCtrl.text,
"last_name":lastnameCtrl.text,
"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.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => LoginPage())),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
RegisterModel model = res.success;
// print("Username ="+"${model.user}");
print("Regist message ="+"${model.message}");
} else {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: "อีเมล์\nมีการลงทะเบียนแล้ว",
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();
}
}
///////phone log in////////////////
letregis_phone() async {
LoadingView(state.context).show();
_api = Api<RegisterModel>();
var res = await _api.register({
"access_type":"mobile",
"phone_number": phonenumberCtrl.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.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => LoginPage())),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
RegisterModel model = res.success;
// print("Username ="+"${model.user}");
print("Regist message ="+"${model.message}");
} else {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: "เบอร์โทรศัพท์ของท่าน\nมีการลงทะเบียนแล้ว",
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();
}
}
letCheckData_phone() async {
// if(!verifyPhoneState){
// throw(allTranslations.text(key: 'please_verify_phone'));
// }
try {
if (phonenumberCtrl.text.isEmpty ) throw ('กรุณากรอก\nเบอร์โทรศัพท์มือถือ');
else if (passCtrl.text.isEmpty ) throw('กรุณากรอก\nรหัสผ่าน');
Pattern pattern =
r'(^(?:[+0]9)?[0-9]{10,12}$)';
RegExp regex = new RegExp(pattern);
if (!regex.hasMatch(phonenumberCtrl.text))
throw ('รูปแบบเบอร์โทรศัพท์\nไม่ถูกต้อง');
Pattern pattern2 =
r'^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$';
RegExp regex2 = new RegExp(pattern2);
if (!regex2.hasMatch(passCtrl.text))
throw ('รหัสผ่านต้องมีความยาวอย่าง น้อย 8 ตัวอักษร และต้องประกอบด้วยอักขระ ดังต่อไปนี้\n- ตัวอักษรภาษาอังกฤษ ตัวพิมพ์เล็ก (a-z) \n- ตัวอักษรภาษาอังกฤษ ตัวพิมพ์ใหญ่ (A-Z) \n- ตัวเลข (0-9)');
else {
await letregis_phone();
print("complete");
}
} catch (e) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: '$e',
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();
}
}
// facebookLogin() async {
// try {
// await _facebookLogin.logIn(['email']).then((result) async {
// var fbData = await Api().getFacebookInfo(result.accessToken.token);
// print(fbData);
// await _letSocialSignIn(result.accessToken.userId, 'facebook')
// .then((value) {
// if (value) {
// Navigator.popUntil(state.context, (route) => route.isFirst);
// Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) =>
// NavigatorPage(),
// ));
// } else {
// Navigator.push(
// state.context,
// CupertinoPageRoute(
// builder: (_) => SignUpEmail(
// socialType: SocialType.facebook,
// socialData: new RegisterSocialDataModel(
// socialId: result.accessToken.userId,
// token: result.accessToken.token,
// email: fbData['email'],
// firstName: fbData['first_name'],
// lastName: fbData['last_name'],
// ),
// )));
// }
// });
// });
// } catch (e) {
// print(e);
// }
// }
}
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