fingerprint auth added
This commit is contained in:
@@ -7,11 +7,11 @@ class AppText {
|
||||
static const String welcomeTitle1Text = "Tanami offers";
|
||||
static const String welcomeTitle2Text = "Invest alongside";
|
||||
static const String welcomeTitle3Text = "Start investing today ";
|
||||
static const String weclomeDescription1Text =
|
||||
static const String welcomeDescription1Text =
|
||||
"access to best-in-class, exclusive, global private investments";
|
||||
static const String weclomeDescription2Text =
|
||||
static const String welcomeDescription2Text =
|
||||
"experienced investment experts with a long-standing track record";
|
||||
static const String weclomeDescription3Text = "with only SAR 1,000";
|
||||
static const String welcomeDescription3Text = "with only SAR 1,000";
|
||||
static const String loginText = "Log In";
|
||||
static const String signUpText = "Sign Up";
|
||||
|
||||
@@ -96,6 +96,9 @@ class AppText {
|
||||
static const String areYouSureYouWantToExitText =
|
||||
"Are you sure you want to Exit?";
|
||||
|
||||
//FAQ
|
||||
static const String faqTitle = "Frequently Asked Questions:";
|
||||
|
||||
//Security
|
||||
static const String unlockText = "Unlock";
|
||||
static const String tanamiAppIsLocked = "Tanami Capital is locked";
|
||||
@@ -130,6 +133,11 @@ class AppText {
|
||||
static const String allowText = "Allow";
|
||||
static const String declineText = "Decline";
|
||||
|
||||
//Forgot Password
|
||||
static const String almostHere = 'Almost here...';
|
||||
static const String completeAcc =
|
||||
'Complete account profile in 3 minutes to start investing';
|
||||
|
||||
//Forgot Password
|
||||
static const String restorePasswordText = "Restore password";
|
||||
static const String toRestorePasswordPleaseEnterPhoneNumber =
|
||||
@@ -144,6 +152,7 @@ class AppText {
|
||||
static const String filterTitle = "Filters";
|
||||
static const String onHold = "On Hold";
|
||||
static const String deposit = "Deposit";
|
||||
static const String withdraw = "Withdraw";
|
||||
static const String withdrawal = "Withdrawal";
|
||||
static const String yield = "Yield";
|
||||
static const String refund = "Refund";
|
||||
@@ -177,7 +186,8 @@ class AppText {
|
||||
static const String required = 'Fields with * are required';
|
||||
static const String withdrawAmt = 'Total Withdrawal amount:';
|
||||
static const String depositAmt = 'Total Deposit amount:';
|
||||
static const String info2 = 'Payment can include transfer fee from your bank';
|
||||
static const String info2 =
|
||||
'Payment can include transfer fee from your bank ';
|
||||
static const String info3 =
|
||||
'To accomplish payment please use payment details and Reference ID in tour Bank';
|
||||
static const String next = 'Next';
|
||||
@@ -310,7 +320,4 @@ class AppText {
|
||||
static const String investmentConfirmationText = "Investment confirmation";
|
||||
static const String enterAmountText = "Enter Amount";
|
||||
static const String pleaseEnterAmountText = "Please Enter Amount";
|
||||
|
||||
//Wallet
|
||||
static const String withdrawText = 'Withdraw';
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ class ConfirmInvestmentScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
body: ConfirmInvestmentLayout(),
|
||||
body: const ConfirmInvestmentLayout(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
titleSpacing: 16,
|
||||
),
|
||||
body: SettingsLayout(),
|
||||
body: const SettingsLayout(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,11 +41,14 @@ class SettingsListItem extends StatelessWidget {
|
||||
trailing: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(trailing,
|
||||
style: GoogleFonts.dmSans(
|
||||
fontSize: 15,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: AppColor.plainBlack)),
|
||||
Text(
|
||||
trailing,
|
||||
style: GoogleFonts.dmSans(
|
||||
fontSize: 15,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: AppColor.plainBlack,
|
||||
),
|
||||
),
|
||||
const Gap(10),
|
||||
const Icon(Icons.arrow_forward_ios, size: 16.0),
|
||||
],
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// ignore: file_names
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
@@ -257,7 +258,7 @@ class DepositLayout extends StatelessWidget {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Fee',
|
||||
AppText.feeText,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF535353),
|
||||
fontSize: 14.sp,
|
||||
@@ -278,7 +279,7 @@ class DepositLayout extends StatelessWidget {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Total Deposit amount:',
|
||||
AppText.depositAmt,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF535353),
|
||||
fontSize: 14.sp,
|
||||
|
||||
@@ -47,7 +47,7 @@ class _KYCScreenState extends State<KYCScreen> {
|
||||
height: 24.h,
|
||||
),
|
||||
Text(
|
||||
'Almost here...',
|
||||
AppText.almostHere,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF363636),
|
||||
fontSize: 17.sp,
|
||||
@@ -60,7 +60,7 @@ class _KYCScreenState extends State<KYCScreen> {
|
||||
SizedBox(
|
||||
width: 280.w,
|
||||
child: Text(
|
||||
'Complete account profile in 3 minutes to start investing',
|
||||
AppText.completeAcc,
|
||||
textAlign: TextAlign.center,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF8D8D8D),
|
||||
@@ -129,9 +129,6 @@ class _KYCScreenState extends State<KYCScreen> {
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
// goRouter.pushNamed(RouteName.otpScreen, pathParameters: {
|
||||
// "fromScreen": 'withdrawal',
|
||||
// });
|
||||
},
|
||||
child: Container(
|
||||
margin: const EdgeInsets.all(12.0),
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
// ignore: file_names
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.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:ticket_widget/ticket_widget.dart';
|
||||
|
||||
import '../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../shared/components/button_widget.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/shared/components/button_widget.dart';
|
||||
|
||||
class WalletDetails extends StatelessWidget {
|
||||
final String type;
|
||||
@@ -477,7 +476,7 @@ class WalletDetails extends StatelessWidget {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
AppText.paymentMethod,
|
||||
AppText.paymentMethodText,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF535353),
|
||||
fontSize: 14.sp,
|
||||
|
||||
@@ -273,7 +273,7 @@ class _WithdrawalConfirmationState extends State<WithdrawalConfirmation> {
|
||||
padding: const EdgeInsets.symmetric(vertical: 20.0),
|
||||
child: Center(
|
||||
child: Text(
|
||||
'Close',
|
||||
AppText.closeText,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.white,
|
||||
fontSize: 14.sp,
|
||||
|
||||
@@ -62,7 +62,7 @@ Widget bottomSection(BuildContext context) {
|
||||
}
|
||||
},
|
||||
builder: (context, state) {
|
||||
return Container(
|
||||
return SizedBox(
|
||||
width: 1.sw,
|
||||
height: 56.h,
|
||||
child: ButtonWidget().textBorderBtn(
|
||||
|
||||
@@ -35,7 +35,7 @@ class _AccountappState extends State<FAQScreen> {
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 16.w, top: 23.h),
|
||||
child: Text(
|
||||
"Frequently Asked Questions:",
|
||||
AppText.faqTitle,
|
||||
style: GoogleFonts.dmSans(
|
||||
fontSize: 18.sp,
|
||||
color: AppColor.charcoalColor,
|
||||
@@ -52,78 +52,75 @@ class _AccountappState extends State<FAQScreen> {
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: ExpansionTileGroup(
|
||||
spaceBetweenItem: 23,
|
||||
toggleType: ToggleType.expandOnlyCurrent,
|
||||
children: List.generate(
|
||||
faList.length,
|
||||
(index) => ExpansionTileItem(
|
||||
isHasBottomBorder: true,
|
||||
isHasLeftBorder: true,
|
||||
isHasRightBorder: true,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: AppColor.plainBlack.withOpacity(0.15),
|
||||
spreadRadius: 2,
|
||||
blurRadius: 10,
|
||||
offset: const Offset(
|
||||
0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
isHasTopBorder: true,
|
||||
collapsedBackgroundColor:
|
||||
AppColor.portfolioCardBgColor,
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
onExpansionChanged: (bool expanding) {
|
||||
if (expanding) {
|
||||
setState(() {
|
||||
selectedTile = index;
|
||||
});
|
||||
} else {
|
||||
setState(() {
|
||||
selectedTile = -1;
|
||||
});
|
||||
}
|
||||
},
|
||||
backgroundColor: AppColor.portfolioCardBgColor,
|
||||
childrenPadding: EdgeInsets.only(
|
||||
left: 0.w,
|
||||
right: 0.w,
|
||||
bottom: 8.h,
|
||||
top: 10.h),
|
||||
initiallyExpanded: index == selectedTile,
|
||||
isHasTrailing: false,
|
||||
title: Text(
|
||||
faList[index]['title']!,
|
||||
maxLines: 3,
|
||||
style: GoogleFonts.dmSans(
|
||||
fontSize: 16.sp,
|
||||
color: AppColor.otpTextColor,
|
||||
fontWeight: FontWeight.w600),
|
||||
spaceBetweenItem: 23,
|
||||
toggleType: ToggleType.expandOnlyCurrent,
|
||||
children: List.generate(
|
||||
faList.length,
|
||||
(index) => ExpansionTileItem(
|
||||
isHasBottomBorder: true,
|
||||
isHasLeftBorder: true,
|
||||
isHasRightBorder: true,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: AppColor.plainBlack.withOpacity(0.15),
|
||||
spreadRadius: 2,
|
||||
blurRadius: 10,
|
||||
offset:
|
||||
const Offset(0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
isHasTopBorder: true,
|
||||
collapsedBackgroundColor: AppColor.portfolioCardBgColor,
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
onExpansionChanged: (bool expanding) {
|
||||
if (expanding) {
|
||||
setState(() {
|
||||
selectedTile = index;
|
||||
});
|
||||
} else {
|
||||
setState(() {
|
||||
selectedTile = -1;
|
||||
});
|
||||
}
|
||||
},
|
||||
backgroundColor: AppColor.portfolioCardBgColor,
|
||||
childrenPadding: EdgeInsets.only(
|
||||
left: 0.w, right: 0.w, bottom: 8.h, top: 10.h),
|
||||
initiallyExpanded: index == selectedTile,
|
||||
isHasTrailing: false,
|
||||
title: Text(
|
||||
faList[index]['title']!,
|
||||
maxLines: 3,
|
||||
style: GoogleFonts.dmSans(
|
||||
fontSize: 16.sp,
|
||||
color: AppColor.otpTextColor,
|
||||
fontWeight: FontWeight.w600),
|
||||
),
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin: const EdgeInsets.symmetric(horizontal: 5),
|
||||
width: 1.sw,
|
||||
// height: 109.h,
|
||||
decoration: BoxDecoration(
|
||||
color: AppColor.plainWhite,
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 12.w, vertical: 10.h),
|
||||
child: Text(
|
||||
faList[index]['answer']!,
|
||||
style: GoogleFonts.dmSans(
|
||||
fontSize: 16.sp,
|
||||
color: AppColor.investPaymentTextColor,
|
||||
),
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin:
|
||||
const EdgeInsets.symmetric(horizontal: 5),
|
||||
width: 1.sw,
|
||||
// height: 109.h,
|
||||
decoration: BoxDecoration(
|
||||
color: AppColor.plainWhite,
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 12.w, vertical: 10.h),
|
||||
child: Text(
|
||||
faList[index]['answer']!,
|
||||
style: GoogleFonts.dmSans(
|
||||
fontSize: 16.sp,
|
||||
color: AppColor.investPaymentTextColor,
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
))),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
// ignore: depend_on_referenced_packages
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
|
||||
import 'app_version_event.dart';
|
||||
|
||||
@@ -14,7 +14,7 @@ Widget buildPage(
|
||||
context,
|
||||
imageAsset: AppImages.firstWelcome,
|
||||
title: AppText.welcomeTitle1Text,
|
||||
description: AppText.weclomeDescription1Text,
|
||||
description: AppText.welcomeDescription1Text,
|
||||
);
|
||||
case 1:
|
||||
return buildOnboardingPage(
|
||||
@@ -23,7 +23,7 @@ Widget buildPage(
|
||||
context,
|
||||
imageAsset: AppImages.secondWelcome,
|
||||
title: AppText.welcomeTitle2Text,
|
||||
description: AppText.weclomeDescription2Text,
|
||||
description: AppText.welcomeDescription2Text,
|
||||
);
|
||||
case 2:
|
||||
return buildOnboardingPage(
|
||||
@@ -32,7 +32,7 @@ Widget buildPage(
|
||||
context,
|
||||
imageAsset: AppImages.thirdWelcome,
|
||||
title: AppText.welcomeTitle3Text,
|
||||
description: AppText.weclomeDescription3Text,
|
||||
description: AppText.welcomeDescription3Text,
|
||||
isLastPage: true,
|
||||
);
|
||||
default:
|
||||
|
||||
@@ -7,8 +7,7 @@ import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:tanami_app/core/routes/routes.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/shared/components/toast_message.dart';
|
||||
|
||||
import '../../core/styles/app_images.dart';
|
||||
import 'package:tanami_app/core/styles/app_images.dart';
|
||||
|
||||
class NoInternet extends StatelessWidget {
|
||||
const NoInternet({super.key});
|
||||
@@ -18,8 +17,9 @@ class NoInternet extends StatelessWidget {
|
||||
return WillPopScope(
|
||||
onWillPop: () => Future.value(false),
|
||||
child: Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: Column(children: [
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: Column(
|
||||
children: [
|
||||
Center(
|
||||
child: Container(
|
||||
margin: const EdgeInsets.only(top: 100),
|
||||
@@ -40,12 +40,13 @@ class NoInternet extends StatelessWidget {
|
||||
Container(
|
||||
margin: const EdgeInsets.symmetric(horizontal: 20),
|
||||
child: Text(
|
||||
"Internet Connection is Down!\n\nEnsure your internet's up and running.",
|
||||
textAlign: TextAlign.center,
|
||||
style: GoogleFonts.dmSans(
|
||||
fontSize: 18.0,
|
||||
fontWeight: FontWeight.w500,
|
||||
)),
|
||||
"Internet Connection is Down!\n\nEnsure your internet's up and running.",
|
||||
textAlign: TextAlign.center,
|
||||
style: GoogleFonts.dmSans(
|
||||
fontSize: 18.0,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 30.0,
|
||||
@@ -74,7 +75,9 @@ class NoInternet extends StatelessWidget {
|
||||
child: Text(
|
||||
"Try Again",
|
||||
style: GoogleFonts.dmSans(
|
||||
color: AppColor.plainWhite, fontSize: 20.sp),
|
||||
color: AppColor.plainWhite,
|
||||
fontSize: 20.sp,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -84,7 +87,9 @@ class NoInternet extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
])),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user