Commit 8dd0cbd8 by Mobile : Ball (Apprentice)

Merge branch 'develop' of https://gitlab.2fellows.com/art/feelver into develop

parents ea4aacf0 482cd546
...@@ -22,6 +22,10 @@ ...@@ -22,6 +22,10 @@
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
<!-- Don't delete the meta-data below. <!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java --> This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data <meta-data
......
...@@ -25,9 +25,9 @@ class MyApp extends StatelessWidget { ...@@ -25,9 +25,9 @@ class MyApp extends StatelessWidget {
primarySwatch: Colors.blue, primarySwatch: Colors.blue,
), ),
// home: SplashScreenPage(), home: SplashScreenPage(),
home: EditProfile(), //home: EditProfile(),
); );
} }
......
...@@ -24,16 +24,16 @@ class LoginModel { ...@@ -24,16 +24,16 @@ class LoginModel {
class User { class User {
int id; int id;
Null roleId; dynamic roleId;
String name; String name;
String email; String email;
String avatar; String avatar;
Null emailVerifiedAt; dynamic emailVerifiedAt;
int status; int status;
int fvRoleId; int fvRoleId;
Null settings; dynamic settings;
Null createdAt; dynamic createdAt;
Null updatedAt; dynamic updatedAt;
CustomerInfo customerInfo; CustomerInfo customerInfo;
User( User(
......
...@@ -19,14 +19,14 @@ class Api<T> { ...@@ -19,14 +19,14 @@ class Api<T> {
final _headerApi = { final _headerApi = {
"Authorization": "Authorization":
"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvYmFja2VuZC11YXQuZmVlbHZlci5jb21cL2FwaVwvbG9naW4iLCJpYXQiOjE1OTQ5NzIzMjYsImV4cCI6MTYwMjE3MjMyNiwibmJmIjoxNTk0OTcyMzI2LCJqdGkiOiJsM1BldUJVcTdDNldSbzVGIiwic3ViIjo1LCJwcnYiOiI4N2UwYWYxZWY5ZmQxNTgxMmZkZWM5NzE1M2ExNGUwYjA0NzU0NmFhIn0.fwFqcbzG2T_ZHtIcGF13Ek7nIxxwbnaE9ZXGomo-nzY", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvYmFja2VuZC11YXQuZmVlbHZlci5jb21cL2FwaVwvbG9naW4iLCJpYXQiOjE1OTYxMDAzNTgsImV4cCI6MTYwMzMwMDM1OCwibmJmIjoxNTk2MTAwMzU4LCJqdGkiOiJ2YjA2S0FHR1JtZDFseEw1Iiwic3ViIjozNzMsInBydiI6Ijg3ZTBhZjFlZjlmZDE1ODEyZmRlYzk3MTUzYTE0ZTBiMDQ3NTQ2YWEifQ.UkY70AshvW5O4M63XY_Iv2IPBohSUUwnRF1oi46p2zs",
}; };
Future<Response<T>> getprofile(Object body) async { Future<Response<T>> getprofile(Object body) async {
var _model; var _model;
var _fail; var _fail;
var result; var result;
print("this is body "+body.toString());
// (body as Map)['lang'] = allTranslations.currentLanguage; // (body as Map)['lang'] = allTranslations.currentLanguage;
await _httpConnection( await _httpConnection(
"${this._baseApi}/customer/info", this._headerApi, body) "${this._baseApi}/customer/info", this._headerApi, body)
...@@ -41,6 +41,26 @@ class Api<T> { ...@@ -41,6 +41,26 @@ class Api<T> {
}); });
return result; return result;
} }
Future<Response<T>> editProfile(Object body) async {
var _model;
var _fail;
var result;
print("This is body "+body.toString());
await _httpConnection(
"${this._baseApi}/customer/edit", this._headerApi, body)
.then((response) {
print("ผลลัพ เท่ากับบบบ " + "${response.body}");
if (response.statusCode == 200) {
_model = FogetPasswordModel.fromJson(json.decode(response.body));
} else {
_fail = FailModel.fromJson(json.decode(response.body));
}
result = new Response<T>(_model, _fail);
});
return result;
}
Future<Response<T>> forgetPassword(Object body) async { Future<Response<T>> forgetPassword(Object body) async {
var _model; var _model;
var _fail; var _fail;
......
...@@ -9,6 +9,8 @@ import 'package:flutter/material.dart'; ...@@ -9,6 +9,8 @@ import 'package:flutter/material.dart';
import '../../util/SizeConfig.dart'; import '../../util/SizeConfig.dart';
class EditProfile extends StatefulWidget { class EditProfile extends StatefulWidget {
String id;
EditProfile({Key key,this.id,}) : super(key: key);
@override @override
_EditProfileState createState() => _EditProfileState(); _EditProfileState createState() => _EditProfileState();
} }
...@@ -21,13 +23,15 @@ class _EditProfileState extends State<EditProfile> { ...@@ -21,13 +23,15 @@ class _EditProfileState extends State<EditProfile> {
super.initState(); super.initState();
presenter = EditprofilePresenter(this); presenter = EditprofilePresenter(this);
presenter.getprofile(); print("wwww id ="+widget.id);
presenter.getprofile(widget.id);
} }
_getImage() { _getImage() {
ImagePickerUtil(context, (img) { ImagePickerUtil(context, (img) {
setState(() { setState(() {
image = img; image = img;
presenter.imageFile=img;
}); });
}); });
} }
...@@ -75,7 +79,7 @@ class _EditProfileState extends State<EditProfile> { ...@@ -75,7 +79,7 @@ class _EditProfileState extends State<EditProfile> {
height: SizeConfig.getWidth(100), height: SizeConfig.getWidth(100),
), ),
) )
: Stack( :presenter.getmodel.result[0].image==null? Stack(
children: <Widget>[ children: <Widget>[
Container( Container(
height: SizeConfig.getWidth(80), height: SizeConfig.getWidth(80),
...@@ -108,7 +112,19 @@ class _EditProfileState extends State<EditProfile> { ...@@ -108,7 +112,19 @@ class _EditProfileState extends State<EditProfile> {
), ),
) )
], ],
):
ClipRRect(
borderRadius: BorderRadius.all(
Radius.circular(SizeConfig.getWidth(56))),
child: Image.network(
presenter.getmodel.result[0].image,
fit: BoxFit.contain,
width: SizeConfig.getWidth(100),
height: SizeConfig.getWidth(100),
),
), ),
), ),
Container( Container(
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
...@@ -317,6 +333,8 @@ class _EditProfileState extends State<EditProfile> { ...@@ -317,6 +333,8 @@ class _EditProfileState extends State<EditProfile> {
padding: EdgeInsets.all(0.0), padding: EdgeInsets.all(0.0),
splashColor: Colors.blueAccent, splashColor: Colors.blueAccent,
onPressed: () { onPressed: () {
presenter.letCheckData();
print('name= ${presenter.nameCtrl.text}'); print('name= ${presenter.nameCtrl.text}');
print('lastname= ${presenter.lnameCtrl.text}'); print('lastname= ${presenter.lnameCtrl.text}');
print('email= ${presenter.emailCtrl.text}'); print('email= ${presenter.emailCtrl.text}');
......
import 'dart:async'; import 'dart:async';
import 'dart:convert';
import 'dart:developer'; import 'dart:developer';
import 'dart:io';
import 'package:feelverapp/model/Login/login_model.dart'; import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/model/editprofile/getprofilemodel.dart'; import 'package:feelverapp/model/editprofile/getprofilemodel.dart';
import 'package:feelverapp/model/forgetpassword/forgetpassModel.dart'; import 'package:feelverapp/model/forgetpassword/forgetpassModel.dart';
import 'package:feelverapp/service/Loading.dart'; import 'package:feelverapp/service/Loading.dart';
import 'package:feelverapp/service/api.dart'; import 'package:feelverapp/service/api.dart';
...@@ -20,135 +21,182 @@ import 'package:rflutter_alert/rflutter_alert.dart'; ...@@ -20,135 +21,182 @@ import 'package:rflutter_alert/rflutter_alert.dart';
import 'edit_profile.dart'; import 'edit_profile.dart';
class EditprofilePresenter extends BasePresenter<EditProfile> { class EditprofilePresenter extends BasePresenter<EditProfile> {
Api _api; Api _api;
File imageFile;
String uid = "16";
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
String age,lastname,firstname,sex,address,email,phone; String age, lastname, firstname, sex, address, email, phone;
GetprofileModel getmodel; GetprofileModel getmodel;
TextEditingController addresCtrl =TextEditingController() ; TextEditingController addresCtrl = TextEditingController();
TextEditingController ageCtrl =TextEditingController() ; TextEditingController ageCtrl = TextEditingController();
TextEditingController selectedSex =TextEditingController() ; TextEditingController selectedSex = TextEditingController();
TextEditingController nameCtrl = TextEditingController(); TextEditingController nameCtrl = TextEditingController();
TextEditingController phoneCtrl = TextEditingController(); TextEditingController phoneCtrl = TextEditingController();
TextEditingController emailCtrl = TextEditingController(); TextEditingController emailCtrl = TextEditingController();
TextEditingController lnameCtrl = TextEditingController(); TextEditingController lnameCtrl = TextEditingController();
EditprofilePresenter(State<EditProfile> state) : super(state); EditprofilePresenter(State<EditProfile> state) : super(state);
letCheckData() async {
try {
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'(^(?:[+0]9)?[0-9]{10,12}$)';
RegExp regex2 = new RegExp(pattern2);
if (!regex2.hasMatch(phoneCtrl.text))
throw ('รูปแบบเบอร์โทรศัพท์\nไม่ถูกต้อง');
if (selectedSex.text != "ชาย") {
if (selectedSex.text != "หญิง") throw ('กรุณาระบุเพศ\nชาย/หญิง');
else {
await letedit();
print("completeee");
}
} else {
await letedit();
print("completeee");
}
} 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();
}
}
letedit() async {
_api = Api<FogetPasswordModel>();
LoadingView(state.context).show();
var res = await _api.editProfile({
'id': getmodel.result[0].id.toString(),
'name': nameCtrl.text,
'lastname': lnameCtrl.text,
'phone': phoneCtrl.text,
'email': emailCtrl.text,
'sex': selectedSex.text == "ชาย" ? 'm' : 'w',
'image': imageFile != null ? _getImageBase64() : " ",
});
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();
} else {
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();
}
}
_getImageBase64() {
return base64.encode(imageFile.readAsBytesSync());
}
getprofile(String id) async {
letCheckData() async {
try {
if (emailCtrl.text.isEmpty ) throw ('กรุณากรอก\nอีเมล์');
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ไม่ถูกต้อง');
else {
await getprofile();
}
} 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();
}
}
getprofile() async {
_api = Api<GetprofileModel>(); _api = Api<GetprofileModel>();
var res = await _api.getprofile({ var res = await _api.getprofile({
"id":"16" "id": id
});
});
if (res.fail == null) { if (res.fail == null) {
setState((){ setState(() {
getmodel = res.success; getmodel = res.success;
ageCtrl.text=getmodel.result[0].age.toString(); ageCtrl.text = getmodel.result[0].age.toString();
nameCtrl.text=getmodel.result[0].name; nameCtrl.text = getmodel.result[0].name;
lnameCtrl.text=getmodel.result[0].lastname; lnameCtrl.text = getmodel.result[0].lastname;
selectedSex.text= getmodel.result[0].sex=='m'?"ชาย":"หญิง"; selectedSex.text = getmodel.result[0].sex == 'm' ? "ชาย" : "หญิง";
addresCtrl.text=getmodel.result[0].address.toString(); addresCtrl.text = getmodel.result[0].address.toString();
emailCtrl.text=getmodel.result[0].email; emailCtrl.text = getmodel.result[0].email;
phoneCtrl.text=getmodel.result[0].phone.toString(); phoneCtrl.text = getmodel.result[0].phone.toString();
}); });
} else {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
} else { isCloseButton: false,
Alert( ),
style: AlertStyle( context: state.context,
animationType: AnimationType.fromTop, title: "ไม่สามารถติดต่อ\nเซิร์ฟเวอร์ได้",
isCloseButton: false, content: Icon(
Icons.warning,
), color: Colors.orange,
context: state.context, size: 80,
title: "ไม่สามารถติดต่อ\nเซิร์ฟเวอร์ได้", ),
content: Icon(Icons.warning,color: Colors.orange,size: 80,), buttons: [
buttons: [ DialogButton(
DialogButton( color: Color.fromRGBO(106, 179, 170, 1),
color: Color.fromRGBO(106, 179, 170, 1), onPressed: () => Navigator.pop(state.context),
onPressed: () => Navigator.pop(state.context), child: Text(
child: Text( "ลองอีกครั้ง",
"ลองอีกครั้ง", style: TextStyle(color: Colors.white, fontSize: 20),
style: TextStyle(color: Colors.white, fontSize: 20), ),
), )
) ]).show();
]).show();
} }
} }
} }
...@@ -10,6 +10,9 @@ import 'package:flutter/cupertino.dart'; ...@@ -10,6 +10,9 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class HomePage extends StatefulWidget { class HomePage extends StatefulWidget {
String id;
String image;
HomePage({Key key, this.id,this.image}) : super(key: key);
@override @override
_HomePageState createState() => _HomePageState(); _HomePageState createState() => _HomePageState();
} }
...@@ -25,8 +28,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -25,8 +28,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
super.initState(); super.initState();
presenter = HomePresenter(this); presenter = HomePresenter(this);
presenter.Listitem(); presenter.Listitem();
presenter.getprofile(widget.id.toString());
} }
...@@ -190,11 +192,12 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -190,11 +192,12 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
left: SizeConfig.getPadding(16), left: SizeConfig.getPadding(16),
child: Container( child: Container(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
showDialog( showDialog(
context: context, context: context,
builder: (BuildContext context) { builder: (BuildContext context) {
return NavDrawer();
return presenter.getmodel==null?Container():NavDrawer(name: presenter.getmodel.result[0].user.name,id:presenter.getmodel.result[0].id.toString(),image:presenter.getmodel.result[0].image ,);
}); });
}, },
child: Image.asset( child: Image.asset(
...@@ -228,13 +231,18 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -228,13 +231,18 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
MaterialPageRoute(builder: (context) => LoginPage()), MaterialPageRoute(builder: (context) => LoginPage()),
); );
}, },
child: Container( child: Container(
child: Image.asset( child: ClipRRect(
'assets/images/ic_userimg.png', borderRadius: BorderRadius.all(
height: SizeConfig.getWidth(30), Radius.circular(SizeConfig.getWidth(56))),
width: SizeConfig.getWidth(30), child: Image.network(
fit: BoxFit.cover, widget.image,
), fit: BoxFit.contain,
width: SizeConfig.getWidth(30),
height: SizeConfig.getWidth(30),
),
),
), ),
), ),
), ),
......
import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/model/category/category_model.dart'; import 'package:feelverapp/model/category/category_model.dart';
import 'package:feelverapp/model/editprofile/getprofilemodel.dart';
import 'package:feelverapp/model/home/home_model.dart'; import 'package:feelverapp/model/home/home_model.dart';
import 'package:feelverapp/service/Loading.dart';
import 'package:feelverapp/service/api.dart'; import 'package:feelverapp/service/api.dart';
import 'package:feelverapp/service/base_presenter.dart'; import 'package:feelverapp/service/base_presenter.dart';
import 'package:feelverapp/ui/home/home.dart'; import 'package:feelverapp/ui/home/home.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
class HomePresenter extends BasePresenter<HomePage> { class HomePresenter extends BasePresenter<HomePage> {
Api _api; Api _api;
final formkey = GlobalKey<FormState>(); final formkey = GlobalKey<FormState>();
GetprofileModel getmodel;
LoginModel logmodel;
HomePresenter(State<HomePage> state) : super(state); HomePresenter(State<HomePage> state) : super(state);
Listitem() async { Listitem() async {
...@@ -22,4 +28,46 @@ class HomePresenter extends BasePresenter<HomePage> { ...@@ -22,4 +28,46 @@ class HomePresenter extends BasePresenter<HomePage> {
print('res Fail'); print('res Fail');
} }
} }
getprofile(String id) async {
_api = Api<GetprofileModel>();
var res = await _api.getprofile({
"id":id.toString()
});
if (res.fail == null) {
setState(() {
getmodel = res.success;});
print("Hii"+getmodel.result[0].name);
} 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();
}
}
} }
...@@ -10,6 +10,8 @@ import 'package:flutter/cupertino.dart'; ...@@ -10,6 +10,8 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class LoginPage extends StatefulWidget { class LoginPage extends StatefulWidget {
@override @override
_LoginPageState createState() => _LoginPageState(); _LoginPageState createState() => _LoginPageState();
} }
...@@ -17,6 +19,7 @@ class LoginPage extends StatefulWidget { ...@@ -17,6 +19,7 @@ class LoginPage extends StatefulWidget {
class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin { class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
TabController _tabController; TabController _tabController;
LoginPresenter presenter; LoginPresenter presenter;
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
......
...@@ -94,7 +94,7 @@ else { ...@@ -94,7 +94,7 @@ else {
if (res.fail == null) { if (res.fail == null) {
LoginModel model = res.success;
Alert( Alert(
style: AlertStyle( style: AlertStyle(
animationType: AnimationType.fromTop, animationType: AnimationType.fromTop,
...@@ -107,15 +107,15 @@ else { ...@@ -107,15 +107,15 @@ else {
buttons: [ buttons: [
DialogButton( DialogButton(
color: Color.fromRGBO(106, 179, 170, 1), color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => onPressed: () { Navigator.pop(state.context);
Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => HomePage())), Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => HomePage(id:model.user.customerInfo.id.toString(),image: model.user.customerInfo.image,)));} ,
child: Text( child: Text(
"ตกลง", "ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20), style: TextStyle(color: Colors.white, fontSize: 20),
), ),
) )
]).show(); ]).show();
LoginModel model = res.success;
await AccountUtil.saveToken(model.token); await AccountUtil.saveToken(model.token);
print( await AccountUtil.getToken()); print( await AccountUtil.getToken());
// print(AccountUtil.getToken().toString()); // print(AccountUtil.getToken().toString());
...@@ -192,8 +192,9 @@ Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => Home ...@@ -192,8 +192,9 @@ Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => Home
buttons: [ buttons: [
DialogButton( DialogButton(
color: Color.fromRGBO(106, 179, 170, 1), color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => onPressed: () { Navigator.pop(state.context);
Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => HomePage())), Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => HomePage()));} ,
child: Text( child: Text(
"ตกลง", "ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20), style: TextStyle(color: Colors.white, fontSize: 20),
......
import 'package:feelverapp/ui/ForgetPassword/forgetpassword.dart';
import 'package:feelverapp/ui/edit_profile/edit_profile.dart'; import 'package:feelverapp/ui/edit_profile/edit_profile.dart';
import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/login/login.dart'; import 'package:feelverapp/ui/login/login.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:feelverapp/util/SizeConfig.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class NavDrawer extends StatelessWidget { class NavDrawer extends StatefulWidget {
String id;
String name;
String image;
String lastname;
NavDrawer({Key key, this.name,this.lastname,this.image,this.id,}) : super(key: key);
@override @override
_NavDrawerState createState() => _NavDrawerState();
}
class _NavDrawerState extends State<NavDrawer> with TickerProviderStateMixin {
@override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Padding( return Padding(
padding: EdgeInsets.only(right: SizeConfig.getPadding(80)), padding: EdgeInsets.only(right: SizeConfig.getPadding(80)),
...@@ -14,37 +34,58 @@ class NavDrawer extends StatelessWidget { ...@@ -14,37 +34,58 @@ class NavDrawer extends StatelessWidget {
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Stack( widget.image==null? Stack(
children: <Widget>[ children: <Widget>[
Container( Container(
padding: EdgeInsets.only( height: SizeConfig.getWidth(80),
left: SizeConfig.getPadding(10), color: Color.fromRGBO(106, 179, 170, 1),
top: SizeConfig.getPadding(24)), ),
child: Image.asset( Container(
'assets/images/ic_userimg.png', alignment: Alignment.topCenter,
width: SizeConfig.getWidth(100), padding: EdgeInsets.only(
height: SizeConfig.getWidth(100), left: SizeConfig.getPadding(10),
), top: SizeConfig.getPadding(30)),
), child: Container(
Container( decoration: BoxDecoration(
padding: EdgeInsets.only( color: Color.fromRGBO(238, 175, 183, 1),
left: SizeConfig.getPadding(90), shape: BoxShape.circle,
top: SizeConfig.getPadding(100)), border: Border.all(
child: Image.asset( color: Colors.white, width: 1.4)),
'assets/images/ic_camera.png', width: SizeConfig.getWidth(100),
width: SizeConfig.getWidth(30), height: SizeConfig.getWidth(100),
height: SizeConfig.getWidth(30), ),
), ),
), Container(
], alignment: Alignment.topCenter,
), padding: EdgeInsets.only(
left: SizeConfig.getPadding(10),
top: SizeConfig.getPadding(65)),
child: Image.asset(
'assets/images/ic_camera_profile.png',
width: SizeConfig.getWidth(34),
height: SizeConfig.getWidth(34),
),
)
],
):
ClipRRect(
borderRadius: BorderRadius.all(
Radius.circular(SizeConfig.getWidth(56))),
child: Image.network(
widget.image,
fit: BoxFit.contain,
width: SizeConfig.getWidth(100),
height: SizeConfig.getWidth(100),
),
),
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
top: SizeConfig.getPadding(20), top: SizeConfig.getPadding(20),
), ),
alignment: Alignment.center, alignment: Alignment.center,
child: Text( child: Text(
'John wick', '${widget.name}',
style: TextStyle( style: TextStyle(
color: Colors.black, color: Colors.black,
fontSize: SizeConfig.getFontSize(24), fontSize: SizeConfig.getFontSize(24),
...@@ -64,7 +105,7 @@ class NavDrawer extends StatelessWidget { ...@@ -64,7 +105,7 @@ class NavDrawer extends StatelessWidget {
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
CupertinoPageRoute(builder: (context) => EditProfile(),), CupertinoPageRoute(builder: (context) => EditProfile(id:widget.id),),
); );
}, },
child: Container( child: Container(
...@@ -321,3 +362,6 @@ class NavDrawer extends StatelessWidget { ...@@ -321,3 +362,6 @@ class NavDrawer extends StatelessWidget {
); );
} }
} }
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