@@ -29,7 +29,7 @@ class AppText {
|
||||
static const String invalidPhoneNo = "Invalid phone number";
|
||||
static const String enterPhoneNo = "Enter phone number";
|
||||
static const String invalidPassword = "Invalid password";
|
||||
static const String forgorPassword = "Forgot password";
|
||||
static const String forgotPassword = "Forgot password";
|
||||
|
||||
//Register
|
||||
static const String getStartedToday = "Get started today";
|
||||
|
||||
@@ -22,9 +22,9 @@ class InvestDetailsScreen extends StatelessWidget {
|
||||
bottomNavigationBar: type == "closed"
|
||||
? null
|
||||
: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 18, vertical: 26),
|
||||
margin: const EdgeInsets.all(10),
|
||||
width: 1.sw,
|
||||
height: 105.h,
|
||||
height: 65.h,
|
||||
child: ButtonWidget().elevatedBtn(
|
||||
text: AppText.investText,
|
||||
clr: AppColor.primaryColor2,
|
||||
|
||||
@@ -1,20 +1,31 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:tanami_app/features/MainScreens/Invest/presentation/pages/payment/confirm_investment_layout.dart';
|
||||
|
||||
import '../../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../../shared/components/appbar_widget.dart';
|
||||
|
||||
class ConfirmInvestmentScreen extends StatelessWidget {
|
||||
const ConfirmInvestmentScreen({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Scaffold(
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: AppBarWidget(
|
||||
height: 75,
|
||||
titleTxt: AppText.confirmInvestmentText,
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.white,
|
||||
elevation: 0,
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.confirmInvestmentText,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
),
|
||||
body: ConfirmInvestmentLayout(),
|
||||
);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_bottom_section.dart';
|
||||
import 'package:tanami_app/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_method_section.dart';
|
||||
@@ -16,6 +17,7 @@ class InvestPaymentLayout extends StatelessWidget {
|
||||
InvestPayTopSection(),
|
||||
InvestPayMethodSection(),
|
||||
InvestPayBottomSection(),
|
||||
Gap(10),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@@ -108,7 +108,7 @@ class InvestDetailCarouselView extends StatelessWidget {
|
||||
color: const Color(0xFFE4F5E9),
|
||||
borderRadius: BorderRadius.circular(30.0),
|
||||
),
|
||||
child: TextWidget().text12W700(
|
||||
child: TextWidget().text11W700(
|
||||
'Asset Class',
|
||||
clr: AppColor.selectedItemColor,
|
||||
),
|
||||
@@ -134,7 +134,7 @@ class InvestDetailCarouselView extends StatelessWidget {
|
||||
Gap(
|
||||
5.w,
|
||||
),
|
||||
TextWidget().text12W500(
|
||||
TextWidget().text11W500(
|
||||
'${AppText.closingDateText} Jul 10 2025',
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
|
||||
@@ -7,7 +7,6 @@ import '../../../../../../core/routes/routes.dart';
|
||||
import '../../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../../shared/components/button_widget.dart';
|
||||
import '../../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class InvestPayBottomSection extends StatelessWidget {
|
||||
const InvestPayBottomSection({super.key});
|
||||
@@ -24,53 +23,22 @@ class InvestPayBottomSection extends StatelessWidget {
|
||||
width: 1.sw,
|
||||
height: 56.h,
|
||||
child: ButtonWidget().elevatedBtn(
|
||||
txtClr: // isButtonEnabled ?
|
||||
AppColor.plainWhite,
|
||||
// : AppColor.inactiveBtnTxtColor,
|
||||
txtClr: AppColor.plainWhite,
|
||||
function: () {
|
||||
// isButtonEnabled
|
||||
// ? context.read<ChangePasswordBloc>().add(
|
||||
// ChangePasswordSubmitted(
|
||||
// context
|
||||
// .read<ChangePasswordBloc>()
|
||||
// .currentPasswordTextField
|
||||
// .text,
|
||||
// context
|
||||
// .read<ChangePasswordBloc>()
|
||||
// .passwordTextField
|
||||
// .text,
|
||||
// context
|
||||
// .read<ChangePasswordBloc>()
|
||||
// .repeatPasswordTextField
|
||||
// .text,
|
||||
// ),
|
||||
// )
|
||||
// : null;
|
||||
|
||||
// showDialog(
|
||||
// context: context,
|
||||
// builder: (context) {
|
||||
// return const InvestmentOverSubscribedDialog();
|
||||
// },
|
||||
// );
|
||||
|
||||
goRouter.pushNamed(RouteName.confirmInvestScreen);
|
||||
},
|
||||
text: AppText.nextText,
|
||||
clr:
|
||||
// isButtonEnabled ?
|
||||
AppColor.primaryColor2
|
||||
// : AppColor.inactiveBtnColor,
|
||||
),
|
||||
clr: AppColor.primaryColor2),
|
||||
),
|
||||
const Gap(5),
|
||||
ButtonWidget().textBtn(
|
||||
function: () {
|
||||
goRouter.pop();
|
||||
},
|
||||
text: TextWidget().text14W700(AppText.backText,
|
||||
clr: AppColor.textLabelColor,
|
||||
textDecoration: TextDecoration.underline)),
|
||||
ButtonWidget().textBorderBtn(
|
||||
borderClr: AppColor.txtBorderColor,
|
||||
clr: AppColor.plainWhite,
|
||||
function: () {
|
||||
goRouter.pop();
|
||||
},
|
||||
text: AppText.backText,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -94,9 +94,13 @@ class InvestPayMethodSection extends StatelessWidget {
|
||||
),
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 1, color: Colors.grey))),
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 1,
|
||||
color: Colors.grey,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
RichText(
|
||||
@@ -175,6 +179,7 @@ class InvestPayMethodSection extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
padding: const EdgeInsets.all(12),
|
||||
@@ -209,10 +214,12 @@ class InvestPayMethodSection extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: TextWidget().text14W500(
|
||||
AppText.instantTransferFundsApplePayText,
|
||||
clr: AppColor.textLabelColor),
|
||||
AppText.instantTransferFundsApplePayText,
|
||||
clr: AppColor.textLabelColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
),
|
||||
const Gap(12),
|
||||
],
|
||||
|
||||
@@ -15,25 +15,19 @@ class SettingsLayout extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
vertical: 10,
|
||||
),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
kycCard(),
|
||||
const Gap(15),
|
||||
const GeneralSettingsSection(),
|
||||
const Gap(15),
|
||||
const PrivacySettingsSection(),
|
||||
const Gap(15),
|
||||
const SupportSettingsSection(),
|
||||
const SettingsBottomSection(),
|
||||
],
|
||||
),
|
||||
body: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
kycCard(),
|
||||
const Gap(15),
|
||||
const GeneralSettingsSection(),
|
||||
const Gap(15),
|
||||
const PrivacySettingsSection(),
|
||||
const Gap(15),
|
||||
const SupportSettingsSection(),
|
||||
const SettingsBottomSection(),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -16,19 +16,20 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.white,
|
||||
elevation: 0,
|
||||
scrolledUnderElevation: 0,
|
||||
automaticallyImplyLeading: false,
|
||||
centerTitle: true,
|
||||
title: TextWidget().text22W700(
|
||||
AppText.settingsText,
|
||||
clr: AppColor.charcoalColor,
|
||||
),
|
||||
titleSpacing: 16,
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.white,
|
||||
elevation: 0,
|
||||
scrolledUnderElevation: 0,
|
||||
automaticallyImplyLeading: false,
|
||||
centerTitle: true,
|
||||
title: TextWidget().text22W700(
|
||||
AppText.settingsText,
|
||||
clr: AppColor.charcoalColor,
|
||||
),
|
||||
body: const SettingsLayout());
|
||||
titleSpacing: 16,
|
||||
),
|
||||
body: SettingsLayout(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,41 +17,46 @@ class GeneralSettingsSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.generalText,
|
||||
clr: AppColor.hintTextColor,
|
||||
),
|
||||
const Gap(5),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.notificationText,
|
||||
clr: AppColor.textLabelColor,
|
||||
),
|
||||
BlocProvider(
|
||||
create: (_) => ToggleBloc(),
|
||||
child: const CustomToggle(),
|
||||
)
|
||||
],
|
||||
),
|
||||
const Gap(12),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(RouteName.languageChangeScreen);
|
||||
},
|
||||
icon: AppImages.languageIcon,
|
||||
title: AppText.languageText,
|
||||
trailing: AppText.englishText,
|
||||
),
|
||||
const Gap(10),
|
||||
const Divider(
|
||||
color: AppColor.academyCardTextColor,
|
||||
),
|
||||
],
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.generalText,
|
||||
clr: AppColor.hintTextColor,
|
||||
),
|
||||
const Gap(5),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.notificationText,
|
||||
clr: AppColor.textLabelColor,
|
||||
),
|
||||
BlocProvider(
|
||||
create: (_) => ToggleBloc(),
|
||||
child: const CustomToggle(),
|
||||
)
|
||||
],
|
||||
),
|
||||
const Gap(12),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(RouteName.languageChangeScreen);
|
||||
},
|
||||
icon: AppImages.languageIcon,
|
||||
title: AppText.languageText,
|
||||
trailing: AppText.englishText,
|
||||
),
|
||||
const Gap(10),
|
||||
const Divider(
|
||||
color: AppColor.academyCardTextColor,
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,59 +7,65 @@ import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
Widget kycCard() {
|
||||
return Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
||||
decoration: ShapeDecoration(
|
||||
color: const Color(0xFFD9EDE0),
|
||||
shape: RoundedRectangleBorder(
|
||||
side: const BorderSide(
|
||||
width: 1,
|
||||
color: AppColor.kycCardBgColor,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(22),
|
||||
),
|
||||
shadows: const [
|
||||
BoxShadow(
|
||||
color: Color(0x33066123),
|
||||
blurRadius: 8,
|
||||
offset: Offset(-3, -3),
|
||||
spreadRadius: 0,
|
||||
),
|
||||
BoxShadow(
|
||||
color: Color(0x26122F1A),
|
||||
blurRadius: 8,
|
||||
offset: Offset(3, 3),
|
||||
spreadRadius: 0,
|
||||
)
|
||||
],
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
vertical: 10,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
SvgPicture.asset(
|
||||
AppImages.upgradeIcon,
|
||||
),
|
||||
const Gap(8),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.experiencedInvestorText,
|
||||
clr: AppColor.kycCardTextColor,
|
||||
),
|
||||
TextWidget().text11W500(
|
||||
AppText.upgradeText,
|
||||
clr: AppColor.kycCardTextColor,
|
||||
),
|
||||
],
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
||||
decoration: ShapeDecoration(
|
||||
color: const Color(0xFFD9EDE0),
|
||||
shape: RoundedRectangleBorder(
|
||||
side: const BorderSide(
|
||||
width: 1,
|
||||
color: AppColor.kycCardBgColor,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(22),
|
||||
),
|
||||
const Gap(8),
|
||||
const Icon(
|
||||
Icons.arrow_forward_ios_rounded,
|
||||
color: AppColor.kycCardTextColor,
|
||||
)
|
||||
],
|
||||
shadows: const [
|
||||
BoxShadow(
|
||||
color: Color(0x33066123),
|
||||
blurRadius: 8,
|
||||
offset: Offset(-3, -3),
|
||||
spreadRadius: 0,
|
||||
),
|
||||
BoxShadow(
|
||||
color: Color(0x26122F1A),
|
||||
blurRadius: 8,
|
||||
offset: Offset(3, 3),
|
||||
spreadRadius: 0,
|
||||
)
|
||||
],
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
SvgPicture.asset(
|
||||
AppImages.upgradeIcon,
|
||||
),
|
||||
const Gap(8),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.experiencedInvestorText,
|
||||
clr: AppColor.kycCardTextColor,
|
||||
),
|
||||
TextWidget().text11W500(
|
||||
AppText.upgradeText,
|
||||
clr: AppColor.kycCardTextColor,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const Gap(8),
|
||||
const Icon(
|
||||
Icons.arrow_forward_ios_rounded,
|
||||
color: AppColor.kycCardTextColor,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -17,54 +17,59 @@ class PrivacySettingsSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.privacySettingsText,
|
||||
clr: AppColor.hintTextColor,
|
||||
),
|
||||
const Gap(5),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.biometricText,
|
||||
clr: AppColor.textLabelColor,
|
||||
),
|
||||
BlocProvider(
|
||||
create: (_) => ToggleBloc(),
|
||||
child: const CustomToggle(),
|
||||
)
|
||||
],
|
||||
),
|
||||
const Gap(12),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(
|
||||
RouteName.changePasswordScreen,
|
||||
);
|
||||
},
|
||||
icon: AppImages.resetPasswordIcon,
|
||||
title: AppText.resetPasswordText,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(RouteName.pinScreen, pathParameters: {
|
||||
"fromScreen": "reset-pin",
|
||||
});
|
||||
},
|
||||
icon: AppImages.resetPinIcon,
|
||||
title: AppText.resetPinCodeText,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(10),
|
||||
const Divider(
|
||||
color: AppColor.academyCardTextColor,
|
||||
),
|
||||
],
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.privacySettingsText,
|
||||
clr: AppColor.hintTextColor,
|
||||
),
|
||||
const Gap(5),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.biometricText,
|
||||
clr: AppColor.textLabelColor,
|
||||
),
|
||||
BlocProvider(
|
||||
create: (_) => ToggleBloc(),
|
||||
child: const CustomToggle(),
|
||||
)
|
||||
],
|
||||
),
|
||||
const Gap(12),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(
|
||||
RouteName.changePasswordScreen,
|
||||
);
|
||||
},
|
||||
icon: AppImages.resetPasswordIcon,
|
||||
title: AppText.resetPasswordText,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(RouteName.pinScreen, pathParameters: {
|
||||
"fromScreen": "reset-pin",
|
||||
});
|
||||
},
|
||||
icon: AppImages.resetPinIcon,
|
||||
title: AppText.resetPinCodeText,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(10),
|
||||
const Divider(
|
||||
color: AppColor.academyCardTextColor,
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,15 +34,6 @@ class SettingsBottomSection extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
const Gap(5),
|
||||
// ButtonWidget().textBtn(
|
||||
// function: () {
|
||||
// goRouter.pushNamed(RouteName.deleteAccountScreen);
|
||||
// },
|
||||
// text: TextWidget().text14W700(
|
||||
// AppText.deleteAccountText,
|
||||
// clr: AppColor.hintTextColor,
|
||||
// textDecoration: TextDecoration.underline,
|
||||
// )),
|
||||
Container(
|
||||
width: 1.sw,
|
||||
height: 56.h,
|
||||
@@ -56,6 +47,7 @@ class SettingsBottomSection extends StatelessWidget {
|
||||
clr: AppColor.plainWhite,
|
||||
),
|
||||
),
|
||||
const Gap(25),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -14,50 +14,55 @@ class SupportSettingsSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.supportText,
|
||||
clr: AppColor.hintTextColor,
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(RouteName.contactAdminScreen);
|
||||
},
|
||||
icon: AppImages.contactIcon,
|
||||
title: AppText.contactAdminText,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {},
|
||||
icon: AppImages.privacyIcon,
|
||||
title: AppText.privacyPolicy,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {},
|
||||
icon: AppImages.privacyIcon,
|
||||
title: AppText.termsAndCondition,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(RouteName.faqScreen);
|
||||
},
|
||||
icon: AppImages.faqIcon,
|
||||
title: AppText.faqText,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(10),
|
||||
const Divider(
|
||||
color: AppColor.academyCardTextColor,
|
||||
),
|
||||
],
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.supportText,
|
||||
clr: AppColor.hintTextColor,
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(RouteName.contactAdminScreen);
|
||||
},
|
||||
icon: AppImages.contactIcon,
|
||||
title: AppText.contactAdminText,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {},
|
||||
icon: AppImages.privacyIcon,
|
||||
title: AppText.privacyPolicy,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {},
|
||||
icon: AppImages.privacyIcon,
|
||||
title: AppText.termsAndCondition,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(8),
|
||||
SettingsListItem(
|
||||
onTapFunc: () {
|
||||
goRouter.pushNamed(RouteName.faqScreen);
|
||||
},
|
||||
icon: AppImages.faqIcon,
|
||||
title: AppText.faqText,
|
||||
trailing: "",
|
||||
),
|
||||
const Gap(10),
|
||||
const Divider(
|
||||
color: AppColor.academyCardTextColor,
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,40 +48,25 @@ class _DepositScreenState extends State<DepositScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
width: 0.55.sw,
|
||||
decoration: const BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(width: 1, color: Colors.grey))),
|
||||
child: Row(
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
children: [
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
children: [
|
||||
TextSpan(
|
||||
text: '${AppText.balance}: ',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.grey,
|
||||
fontSize: 12.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
TextSpan(
|
||||
text: 'SAR 178,000',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 14.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
],
|
||||
TextSpan(
|
||||
text: '${AppText.balance}: ',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.grey,
|
||||
fontSize: 12.sp,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
TextSpan(
|
||||
text: 'SAR 178,000',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const Icon(
|
||||
Icons.arrow_forward,
|
||||
color: Colors.grey,
|
||||
size: 15,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -418,20 +403,20 @@ class _DepositScreenState extends State<DepositScreen> {
|
||||
),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.depositPreview);
|
||||
},
|
||||
child: Container(
|
||||
margin: const EdgeInsets.all(10.0),
|
||||
height: 65.h,
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(22.r),
|
||||
color: const Color(0xFF004717),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 20.0),
|
||||
bottomNavigationBar: Padding(
|
||||
padding: MediaQuery.of(context).viewInsets,
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.depositPreview);
|
||||
},
|
||||
child: Container(
|
||||
margin: const EdgeInsets.all(10.0),
|
||||
height: 65.h,
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(22.r),
|
||||
color: const Color(0xFF004717),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppText.depositNoti,
|
||||
|
||||
@@ -1,330 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:tanami_app/core/routes/routes.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
import 'package:ticket_widget/ticket_widget.dart';
|
||||
|
||||
import '../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../shared/components/button_widget.dart';
|
||||
import '../widgets/wallet_list_section.dart';
|
||||
import '../widgets/yield_detail_section.dart';
|
||||
|
||||
class WalletDetailsScreen extends StatelessWidget {
|
||||
final String type;
|
||||
WalletDetailsScreen({super.key, required this.type});
|
||||
final List titles = [
|
||||
AppText.status,
|
||||
AppText.paymentMethod,
|
||||
AppText.accountName,
|
||||
AppText.iban,
|
||||
AppText.beneficiaryAddress,
|
||||
AppText.bankName,
|
||||
AppText.branchAddress,
|
||||
AppText.SWIFTcode,
|
||||
AppText.refid,
|
||||
];
|
||||
final List values = [
|
||||
'On hold',
|
||||
'Google/Apple Pay',
|
||||
'Name Surname',
|
||||
'DE 1234 5678 9012 3456',
|
||||
'Hohenzollernring 58, 95444',
|
||||
'Name Bank',
|
||||
'Hohenzollernring 58, 95444',
|
||||
'BC12345',
|
||||
'FRYU FHDU 1234',
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return (type == 'confirm-investment')
|
||||
? WillPopScope(
|
||||
onWillPop: () async => false,
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
bottomNavigationBar: Container(
|
||||
margin: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
vertical: 15,
|
||||
),
|
||||
width: 1.sw,
|
||||
height: 60.h,
|
||||
child: ButtonWidget().elevatedBtn(
|
||||
txtClr: AppColor.plainWhite,
|
||||
function: () {
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
},
|
||||
text: AppText.closeText,
|
||||
clr: AppColor.primaryColor2,
|
||||
),
|
||||
),
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.white,
|
||||
elevation: 0,
|
||||
automaticallyImplyLeading: false,
|
||||
actions: [
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.close_sharp,
|
||||
color: Color(0xFF363636),
|
||||
),
|
||||
),
|
||||
],
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.investmentConfirmationText,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(18.0),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(22.r),
|
||||
color: Colors.transparent,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black.withOpacity(0.15),
|
||||
spreadRadius: 2,
|
||||
blurRadius: 10,
|
||||
offset:
|
||||
const Offset(0, 8), // changes position of shadow
|
||||
),
|
||||
],
|
||||
),
|
||||
child: TicketWidget(
|
||||
height: 335.h,
|
||||
isCornerRounded: true,
|
||||
width: double.infinity,
|
||||
color: AppColor.plainWhite,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.fromLTRB(20.0, 30, 20, 10),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
getIcon(type),
|
||||
Gap(16.h),
|
||||
TextWidget().text14W600(AppText.investment,
|
||||
clr: AppColor.otpTextColor),
|
||||
Gap(4.h),
|
||||
TextWidget().text17W700("Name of investment",
|
||||
clr: AppColor.otpTextColor),
|
||||
Gap(
|
||||
4.h,
|
||||
),
|
||||
TextWidget().text11W500('10/04/2024 22:04',
|
||||
clr: AppColor.hintTextColor),
|
||||
Gap(
|
||||
16.h,
|
||||
),
|
||||
TextWidget().text20W900('+ SAR 100,000',
|
||||
clr: AppColor.otpTextColor),
|
||||
TextWidget().text13W500("+ \$100.00",
|
||||
clr: AppColor.textLabelColor),
|
||||
],
|
||||
),
|
||||
Gap(
|
||||
35.h,
|
||||
),
|
||||
_buildBody(),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
: Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: AppBar(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
elevation: 0,
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: TextWidget().text20W700(AppText.walletDetailsTitle,
|
||||
clr: AppColor.charcoalColor)),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(18.0),
|
||||
child: Container(
|
||||
width: 1.sw,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(22.r),
|
||||
color: (type == 'Yield' || type == 'Refund')
|
||||
? AppColor.plainWhite
|
||||
: Colors.transparent,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: AppColor.plainBlack.withOpacity(0.15),
|
||||
spreadRadius: 2,
|
||||
blurRadius: 10,
|
||||
offset: const Offset(0, 8), // changes position of shadow
|
||||
),
|
||||
],
|
||||
),
|
||||
child: (type == 'Yield' || type == 'Refund')
|
||||
? YieldDetailSection(
|
||||
type: type,
|
||||
)
|
||||
: TicketWidget(
|
||||
height: (type == 'Investment' ||
|
||||
type == "confirm-investment")
|
||||
? 320.h
|
||||
: double.infinity,
|
||||
isCornerRounded: true,
|
||||
width: double.infinity,
|
||||
color: Colors.white,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.fromLTRB(20.0, 30, 20, 10),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
getIcon(type),
|
||||
Gap(16.h),
|
||||
TextWidget().text14W600(
|
||||
type == "confirm-investment"
|
||||
? "Investment"
|
||||
: type,
|
||||
clr: AppColor.otpTextColor),
|
||||
Gap(4.h),
|
||||
(type == "confirm-investment" ||
|
||||
type == 'Investment')
|
||||
? TextWidget().text17W700(
|
||||
"Name of investment",
|
||||
clr: AppColor.otpTextColor)
|
||||
: const SizedBox(),
|
||||
Gap(4.h),
|
||||
TextWidget().text11W500('10/04/2024 22:04',
|
||||
clr: AppColor.hintTextColor),
|
||||
Gap(16.h),
|
||||
TextWidget().text20W900('+ SAR 100,000',
|
||||
clr: AppColor.otpTextColor),
|
||||
(type == "confirm-investment" ||
|
||||
type == 'Investment')
|
||||
? TextWidget().text12W500("+ \$100.00",
|
||||
clr: AppColor.textLabelColor)
|
||||
: const SizedBox(),
|
||||
],
|
||||
),
|
||||
Gap(35.h),
|
||||
_buildBody(),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildBody() {
|
||||
if (type == 'Yield') {
|
||||
return const SizedBox();
|
||||
} else if (type == 'Refund') {
|
||||
return const SizedBox();
|
||||
} else if (type == 'Investment' || type == "confirm-investment") {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: const BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
color: AppColor.plainWhite,
|
||||
width: 1.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 15.0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
AppText.paymentMethod,
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
),
|
||||
SizedBox(
|
||||
width: 180.w,
|
||||
child: TextWidget().text14W600(
|
||||
'Google/Apple Pay',
|
||||
clr: AppColor.otpTextColor,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8.0),
|
||||
child: ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
itemCount: titles.length,
|
||||
itemBuilder: (context, index) {
|
||||
if (type == 'Deposit' && titles[index] == 'Status') {
|
||||
return Container();
|
||||
} else {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
color: (index != titles.length - 1)
|
||||
? AppColor.plainBlack
|
||||
: AppColor.plainWhite,
|
||||
width: 1.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 15.0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
TextWidget().text14W500(titles[index],
|
||||
clr: AppColor.portoflioCardTextColor),
|
||||
Expanded(
|
||||
child: (titles[index] == 'Status')
|
||||
? TextWidget().text14W700(values[index],
|
||||
clr: AppColor.onHoldTextColor,
|
||||
txtAlign: TextAlign.end)
|
||||
: TextWidget().text14W600(values[index],
|
||||
clr: AppColor.otpTextColor,
|
||||
txtAlign: TextAlign.end)),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,187 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/core/routes/route_name.dart';
|
||||
import 'package:tanami_app/core/routes/routes.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/styles/app_images.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../widgets/wallet_list_section.dart';
|
||||
|
||||
class WalletScreen extends StatelessWidget {
|
||||
const WalletScreen({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBar(
|
||||
elevation: 0,
|
||||
scrolledUnderElevation: 0.0,
|
||||
automaticallyImplyLeading: false,
|
||||
toolbarHeight: 260.h,
|
||||
titleSpacing: 22.w,
|
||||
title: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W700(
|
||||
AppText.walletTitle,
|
||||
clr: AppColor.darkGreyColor,
|
||||
),
|
||||
Gap(4.h),
|
||||
TextWidget().text28W700('SAR 178,000', clr: AppColor.otpTextColor),
|
||||
Gap(80.h)
|
||||
],
|
||||
),
|
||||
flexibleSpace: FlexibleSpaceBar(
|
||||
background: Stack(
|
||||
children: [
|
||||
Image.asset(
|
||||
AppImages.walletBg,
|
||||
fit: BoxFit.fitWidth,
|
||||
alignment: Alignment.topCenter,
|
||||
),
|
||||
Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 20.0),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: AppColor.plainWhite.withOpacity(0.8),
|
||||
borderRadius:
|
||||
const BorderRadius.all(Radius.circular(20.0)),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 20.0, vertical: 20.0),
|
||||
child: IntrinsicHeight(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.depositScreen);
|
||||
},
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: AppColor.plainBlack,
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Image.asset(
|
||||
AppImages.depositIcon,
|
||||
height: 20.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
TextWidget().text12W700(AppText.depositTitle,
|
||||
clr: AppColor.textLabelColor),
|
||||
],
|
||||
),
|
||||
),
|
||||
const VerticalDivider(
|
||||
color: AppColor.plainBlack,
|
||||
width: 20.0,
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.withdrawalScreen);
|
||||
},
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: AppColor.plainBlack,
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Image.asset(
|
||||
AppImages.withdrawIcon,
|
||||
height: 20.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
TextWidget().text12W700(AppText.withdrawText,
|
||||
clr: AppColor.textLabelColor)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
backgroundColor: Colors.transparent,
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.fromLTRB(18.0, 10.0, 18.0, 0.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
TextWidget()
|
||||
.text11W500(AppText.day, clr: AppColor.hintTextColor),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
color: AppColor.fillColor,
|
||||
borderRadius: BorderRadius.all(Radius.circular(12.0)),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Image.asset(
|
||||
AppImages.walletSearchIcon,
|
||||
height: 20.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 5.w,
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.filterScreen);
|
||||
},
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
color: AppColor.fillColor,
|
||||
borderRadius: BorderRadius.all(Radius.circular(12.0)),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Image.asset(
|
||||
AppImages.walletFilterIcon,
|
||||
height: 20.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
Gap(10.h),
|
||||
const WalletListSection(),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -47,40 +47,25 @@ class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
width: 0.55.sw,
|
||||
decoration: const BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(width: 1, color: Colors.grey))),
|
||||
child: Row(
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
children: [
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
children: [
|
||||
TextSpan(
|
||||
text: '${AppText.balance}: ',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.grey,
|
||||
fontSize: 12.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
TextSpan(
|
||||
text: 'SAR 178,000',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 14.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
],
|
||||
TextSpan(
|
||||
text: '${AppText.balance}: ',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.grey,
|
||||
fontSize: 12.sp,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
TextSpan(
|
||||
text: 'SAR 178,000',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const Icon(
|
||||
Icons.arrow_forward,
|
||||
color: Colors.grey,
|
||||
size: 15,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -422,20 +407,20 @@ class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.withdrawalPreview);
|
||||
},
|
||||
child: Container(
|
||||
margin: const EdgeInsets.all(10.0),
|
||||
height: 65.h,
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(22.r),
|
||||
color: const Color(0xFF004717),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 20.0),
|
||||
bottomNavigationBar: Padding(
|
||||
padding: MediaQuery.of(context).viewInsets,
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.withdrawalPreview);
|
||||
},
|
||||
child: Container(
|
||||
margin: const EdgeInsets.all(10.0),
|
||||
height: 65.h,
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(22.r),
|
||||
color: const Color(0xFF004717),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppText.next,
|
||||
|
||||
@@ -10,8 +10,9 @@ class ChangePasswordLayout extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
bottomNavigationBar: RestorePasswordBottomSection(),
|
||||
body: RestorePasswordForm());
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: RestorePasswordForm(),
|
||||
bottomNavigationBar: RestorePasswordBottomSection(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
|
||||
import '../../../../core/styles/app_color.dart';
|
||||
import '../../../../core/styles/app_text.dart';
|
||||
import '../../../../shared/components/appbar_widget.dart';
|
||||
import '../bloc/change_password_bloc.dart';
|
||||
import 'change_password_layout.dart';
|
||||
|
||||
@@ -14,9 +15,19 @@ class ChangePasswordScreen extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: const AppBarWidget(
|
||||
height: 75,
|
||||
titleTxt: AppText.changePasswordText,
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.white,
|
||||
elevation: 0,
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.changePasswordText,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
),
|
||||
resizeToAvoidBottomInset: false,
|
||||
body: MultiBlocProvider(
|
||||
|
||||
@@ -9,7 +9,6 @@ import '../../../../core/routes/routes.dart';
|
||||
import '../../../../core/styles/app_color.dart';
|
||||
import '../../../../core/styles/app_text.dart';
|
||||
import '../../../../shared/components/button_widget.dart';
|
||||
import '../../../../shared/components/text_widget.dart';
|
||||
import '../bloc/change_password_bloc.dart';
|
||||
import '../bloc/change_password_event.dart';
|
||||
import '../bloc/change_password_state.dart';
|
||||
@@ -87,13 +86,15 @@ class RestorePasswordBottomSection extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
const Gap(5),
|
||||
ButtonWidget().textBtn(
|
||||
function: () {
|
||||
goRouter.pop();
|
||||
},
|
||||
text: TextWidget().text14W700(AppText.backText,
|
||||
clr: AppColor.textLabelColor,
|
||||
textDecoration: TextDecoration.underline)),
|
||||
ButtonWidget().textBorderBtn(
|
||||
clr: Colors.white,
|
||||
borderClr: AppColor.txtBorderColor,
|
||||
function: () {
|
||||
goRouter.pop();
|
||||
},
|
||||
text: AppText.cancelText,
|
||||
),
|
||||
const Gap(10),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -69,13 +69,14 @@ class RestorePasswordForm extends StatelessWidget {
|
||||
Align(
|
||||
alignment: Alignment.topRight,
|
||||
child: ButtonWidget().textBtn(
|
||||
function: () {
|
||||
goRouter.pushNamed(
|
||||
RouteName.forgotPasswordPhoneVerificationScreen);
|
||||
},
|
||||
text: TextWidget().text15W400(AppText.forgorPassword,
|
||||
clr: AppColor.forgotPassButtonColor,
|
||||
textDecoration: TextDecoration.underline)),
|
||||
function: () {
|
||||
goRouter.pushNamed(
|
||||
RouteName.forgotPasswordPhoneVerificationScreen);
|
||||
},
|
||||
text: TextWidget().text15W400(AppText.forgotPassword,
|
||||
clr: AppColor.forgotPassButtonColor,
|
||||
textDecoration: TextDecoration.underline),
|
||||
),
|
||||
),
|
||||
const Gap(20),
|
||||
],
|
||||
|
||||
@@ -38,7 +38,7 @@ class BottomSection extends StatelessWidget {
|
||||
goRouter
|
||||
.pushNamed(RouteName.forgotPasswordPhoneVerificationScreen);
|
||||
},
|
||||
text: TextWidget().text15W400(AppText.forgorPassword,
|
||||
text: TextWidget().text15W400(AppText.forgotPassword,
|
||||
clr: AppColor.forgotPassButtonColor,
|
||||
textDecoration: TextDecoration.underline)),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user