300 lines
12 KiB
Dart
300 lines
12 KiB
Dart
|
|
import 'package:flutter/material.dart';
|
|
import 'package:grostore/app_lang.dart';
|
|
import 'package:grostore/configs/style_config.dart';
|
|
import 'package:grostore/configs/theme_config.dart';
|
|
import 'package:grostore/custom_classes/system_data.dart';
|
|
import 'package:grostore/custom_ui/BoxDecorations.dart';
|
|
import 'package:grostore/custom_ui/Button.dart';
|
|
import 'package:grostore/custom_ui/Image_view.dart';
|
|
import 'package:grostore/helpers/common_functions.dart';
|
|
import 'package:grostore/helpers/device_info_helper.dart';
|
|
import 'package:grostore/helpers/route.dart';
|
|
import 'package:grostore/presenters/auth/auth_presenter.dart';
|
|
import 'package:grostore/screens/address/addresses.dart';
|
|
import 'package:grostore/screens/auth/login.dart';
|
|
import 'package:grostore/screens/coupons.dart';
|
|
import 'package:grostore/screens/help_center.dart';
|
|
import 'package:grostore/screens/main.dart';
|
|
import 'package:grostore/screens/order/orders.dart';
|
|
import 'package:grostore/screens/pages.dart';
|
|
import 'package:grostore/screens/profile_edit.dart';
|
|
import 'package:grostore/screens/refund.dart';
|
|
import 'package:grostore/screens/setting.dart';
|
|
import 'package:grostore/screens/stock_locations.dart';
|
|
import 'package:grostore/screens/track_order.dart';
|
|
import 'package:grostore/screens/wallet.dart';
|
|
import 'package:grostore/screens/wishlist.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:route_transitions/route_transitions.dart';
|
|
import 'package:toast/toast.dart';
|
|
|
|
class Account extends StatefulWidget {
|
|
const Account({super.key});
|
|
|
|
@override
|
|
_AccountState createState() => _AccountState();
|
|
}
|
|
|
|
class _AccountState extends State<Account> with TickerProviderStateMixin {
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
backgroundColor: ThemeConfig.secondaryColor,
|
|
// appBar: AppBar(
|
|
// backgroundColor: ThemeConfig.accentColor,
|
|
// elevation: 0,
|
|
// leading: SizedBox.shrink(),
|
|
// actions: [
|
|
// buildBackButtonContainer(context),
|
|
// ],
|
|
// ),
|
|
// PreferredSize(preferredSize: Size(getWidth(context),40),
|
|
// child:
|
|
// ),
|
|
body: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
const SizedBox(height: 15,),
|
|
Expanded(
|
|
flex: 1,
|
|
child: Container(
|
|
height: 80,
|
|
width: getWidth(context),
|
|
padding: EdgeInsets.symmetric(
|
|
horizontal: StyleConfig.padding, vertical: 10),
|
|
child:SystemData.isLogIn ?
|
|
Row(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
Padding(
|
|
padding: const EdgeInsets.all(15.0),
|
|
child: ImageView(url: SystemData.userInfo.avatar,fit: BoxFit.cover, width: 50, height: 50,radius:50),
|
|
),
|
|
const SizedBox(width: 14,),
|
|
|
|
/// Name and Phone number.
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
|
|
Text(SystemData.userInfo.name??"JAhongir",style: StyleConfig.fs16cWhitefwBold,),
|
|
const SizedBox(height: 10,),
|
|
Text(SystemData.userInfo.phone,style: StyleConfig.fs12cWhitefwBold,),
|
|
],
|
|
),
|
|
const Spacer(),
|
|
Button(
|
|
onPressed: (){
|
|
MakeRoute.go(context, ProfileEdit());
|
|
},
|
|
minWidth: 60,
|
|
padding: const EdgeInsets.symmetric(horizontal: 10,vertical: 10),
|
|
shape: StyleConfig.buttonRadius(8).copyWith(
|
|
side: const BorderSide(width: 1, color: ThemeConfig.white))
|
|
// RoundedRectangleBorder(borderRadius: BorderRadius.c),
|
|
,
|
|
child: Text(AppLang.local(context).edit_profile_ucf, style: StyleConfig.fs12cWhitefwBold,),
|
|
)
|
|
],
|
|
)
|
|
:
|
|
/// ELSE Condition
|
|
Row(
|
|
children: [
|
|
Container(
|
|
height:50,width: 50,
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(45),
|
|
color: ThemeConfig.extraDarkGrey
|
|
),
|
|
padding: const EdgeInsets.symmetric(horizontal: 14,vertical: 14),
|
|
child: Image.asset(getAssetIcon("profile.png"),color: ThemeConfig.lightGrey,),
|
|
),
|
|
const SizedBox(width: 10,),
|
|
Button(minWidth: 20,
|
|
// shape: StyleConfig.buttonRadius(10).copyWith(side: BorderSide(width: 1,color: ThemeConfig.white))
|
|
// RoundedRectangleBorder(borderRadius: BorderRadius.c),
|
|
onPressed:(){
|
|
MakeRoute.go(context, const Login());
|
|
},
|
|
child: Text("Login", style: StyleConfig.fs16fwBold.copyWith(
|
|
decoration: TextDecoration.underline),),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
),
|
|
// SizedBox(height: 20,),
|
|
Expanded(
|
|
flex: 6,
|
|
child: Container(
|
|
padding: EdgeInsets.only(left: StyleConfig.padding,
|
|
right: StyleConfig.padding,
|
|
top: 40),
|
|
//height: getHeight(context)-220,
|
|
decoration: BoxDecorations.customRadius(radius: const BorderRadius.only(
|
|
topLeft: Radius.circular(10), topRight: Radius.circular(10)),
|
|
color: ThemeConfig.white),
|
|
child: SingleChildScrollView(
|
|
child: Column(
|
|
children: [
|
|
|
|
optionModel(AppLang
|
|
.local(context)
|
|
.pick_a_location, getAssetIcon("address.png"), StockLocations()),
|
|
if(SystemData.isLogIn)
|
|
Column(
|
|
children: [
|
|
/// #Voucherva Cupon
|
|
// optionModel(AppLang
|
|
// .local(context)
|
|
// .voucher_n_offers_ucf, getAssetIcon("coupons.png"),
|
|
// const Coupons()),
|
|
optionModel(AppLang
|
|
.local(context)
|
|
.favorite, getAssetIcon("favorite.png"),
|
|
const Wishlist()),
|
|
optionModel(AppLang
|
|
.local(context)
|
|
.order_n_recording_ucf, getAssetIcon("orders.png"),
|
|
Orders(fromBottomBar: false,)),
|
|
// optionModel(AppLang
|
|
// .local(context)
|
|
// .my_profile_ucf, getAssetIcon("profile.png"),
|
|
// Container()),
|
|
optionModel(AppLang.local(context).address, getAssetIcon("address.png"),const Addresses()),
|
|
// optionModel(AppLang
|
|
// .local(context)
|
|
// .notification, getAssetIcon("notification.png"),
|
|
// Container()),
|
|
// optionModel(AppLang
|
|
// .local(context)
|
|
// .security, getAssetIcon("security.png"),
|
|
// Container()),
|
|
optionModel(AppLang
|
|
.local(context)
|
|
.track_my_order_ucf, getAssetIcon("track.png"),
|
|
const TrackOrder()),
|
|
// optionModel(AppLang
|
|
// .local(context)
|
|
// .wallet_history_ucf, getAssetIcon("wallet.png"),
|
|
// const Wallet()),
|
|
// optionModel(AppLang
|
|
// .local(context)
|
|
// .refund_history_ucf, getAssetIcon("refund.png"),
|
|
// const Refund()),
|
|
|
|
],
|
|
),
|
|
|
|
optionModel(AppLang
|
|
.local(context)
|
|
.help_center_ucf, getAssetIcon("help_center.png"),
|
|
const HelpCenter()),
|
|
optionModel(AppLang
|
|
.local(context)
|
|
.settings, getAssetIcon("setting.png"),const Setting()),
|
|
optionModel(AppLang
|
|
.local(context)
|
|
.terms_n_conditions_ucf,
|
|
getAssetIcon("terms_condition.png"), const Pages(slug: "terms-conditions")),
|
|
|
|
if(SystemData.isLogIn)
|
|
logoutModel(AppLang
|
|
.local(context)
|
|
.log_out_ucf, getAssetIcon("logout.png"),(){
|
|
Provider.of<AuthPresenter>(context,listen: false).logout(context);
|
|
MakeRoute.goAndRemoveAll(context, const Main());
|
|
}),
|
|
|
|
if(!SystemData.isLogIn)
|
|
optionModel(AppLang
|
|
.local(context)
|
|
.login, getAssetIcon("login.png"), const Login()),
|
|
|
|
],
|
|
),
|
|
),
|
|
|
|
),
|
|
)
|
|
],
|
|
),
|
|
);
|
|
}
|
|
|
|
Container buildBackButtonContainer(BuildContext context) {
|
|
return Container(
|
|
height: 47,
|
|
alignment: Alignment.topRight,
|
|
child: SizedBox(
|
|
width: 47,
|
|
child: Button(
|
|
minWidth: 0,
|
|
padding: EdgeInsets.zero,
|
|
onPressed: () {
|
|
pop(context);
|
|
},
|
|
child: const Icon(
|
|
Icons.close,
|
|
size: 30,
|
|
color: ThemeConfig.white,
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
|
|
Widget optionModel(String title, String logo, Widget route) {
|
|
return Container(
|
|
margin: EdgeInsets.only(bottom: StyleConfig.xsSectionSpacer),
|
|
height: 50,
|
|
child: Button(
|
|
minWidth: 50,
|
|
onPressed: () {
|
|
MakeRoute.go(context, route);
|
|
},
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Image.asset(logo, width: 25, height: 25, color: ThemeConfig.extraDarkGrey),
|
|
const SizedBox(width: 26,),
|
|
Text(title, style: StyleConfig.fs14fwNormal,),
|
|
const Spacer(),
|
|
// Image.asset(getAssetIcon("next.png"), width: 14,
|
|
// height: 14,
|
|
// color: ThemeConfig.fontColor),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
Widget logoutModel(String title, String logo, dynamic onPress) {
|
|
return Container(
|
|
margin: EdgeInsets.only(bottom: StyleConfig.padding),
|
|
height: 40,
|
|
child: Button(
|
|
minWidth: 40,
|
|
onPressed:onPress,
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Image.asset(logo, width: 18, height: 18, color: ThemeConfig.extraDarkGrey),
|
|
const SizedBox(width: 26,),
|
|
Text(title, style: StyleConfig.fs14fwNormal,),
|
|
const Spacer(),
|
|
// Image.asset(getAssetIcon("next.png"), width: 14,
|
|
// height: 14,
|
|
// color: ThemeConfig.fontColor),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
} |