language localization
This commit is contained in:
@@ -100,7 +100,7 @@
|
||||
"submitText": "إرسال",
|
||||
"walletTitle": "رصيد المحفظة",
|
||||
"walletText": "محفظة",
|
||||
"day": "اليوم",
|
||||
"day": "اليوم",
|
||||
"filterTitle": "مرشحات",
|
||||
"onHold": "قيد الانتظار",
|
||||
"deposit": "إيداع",
|
||||
@@ -108,7 +108,7 @@
|
||||
"withdrawal": "انسحاب",
|
||||
"yield": "عائد",
|
||||
"refund": "استرداد",
|
||||
"investment": "استثمار",
|
||||
"investment": " ",
|
||||
"walletDetailsTitle": "تفاصيل",
|
||||
"withdrawalScreenTitle": "أدخل تفاصيل البنك",
|
||||
"depositScreenTitle": "إخطار الإيداع",
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:tanami_app/features/MainScreens/Academy/presentation/pages/acade
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class AcademyScreen extends StatefulWidget {
|
||||
const AcademyScreen({super.key});
|
||||
@@ -15,6 +16,7 @@ class AcademyScreen extends StatefulWidget {
|
||||
class _AcademyScreenState extends State<AcademyScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: AppBar(
|
||||
@@ -24,7 +26,7 @@ class _AcademyScreenState extends State<AcademyScreen> {
|
||||
scrolledUnderElevation: 0,
|
||||
automaticallyImplyLeading: false,
|
||||
title: TextWidget().text22W700(
|
||||
AppText.academyText,
|
||||
localizations.translate(AppText.academyText),
|
||||
clr: AppColor.charcoalColor,
|
||||
),
|
||||
titleSpacing: 16,
|
||||
|
||||
@@ -6,11 +6,14 @@ 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 '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class AcademyDetailSection extends StatelessWidget {
|
||||
const AcademyDetailSection({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: AppColor.plainWhite,
|
||||
@@ -59,7 +62,7 @@ class AcademyDetailSection extends StatelessWidget {
|
||||
),
|
||||
Gap(5.w),
|
||||
TextWidget().text12W700(
|
||||
'3 ${AppText.videosTitle}',
|
||||
'3 ${localizations.translate(AppText.videosTitle)}',
|
||||
clr: AppColor.academyCardTextColor,
|
||||
),
|
||||
],
|
||||
|
||||
@@ -4,12 +4,14 @@ import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:tanami_app/core/styles/app_images.dart';
|
||||
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class AcademyVideoSection extends StatelessWidget {
|
||||
const AcademyVideoSection({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
@@ -29,7 +31,7 @@ class AcademyVideoSection extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.videosTitle,
|
||||
localizations.translate(AppText.videosTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 15.sp,
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/button_widget.dart';
|
||||
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/appbar_widget.dart';
|
||||
import '../../../Portfolio/presentation/bloc/carousel/carousel_bloc.dart';
|
||||
import 'invest_details_layout.dart';
|
||||
@@ -17,6 +18,7 @@ class InvestDetailsScreen extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
bottomNavigationBar: type == "closed"
|
||||
@@ -26,7 +28,7 @@ class InvestDetailsScreen extends StatelessWidget {
|
||||
width: 1.sw,
|
||||
height: 65.h,
|
||||
child: ButtonWidget().elevatedBtn(
|
||||
text: AppText.investText,
|
||||
text: localizations.translate(AppText.investText),
|
||||
clr: AppColor.primaryColor2,
|
||||
function: () {
|
||||
goRouter.pushNamed(RouteName.investPaymentScreen);
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/features/MainScreens/Invest/presentation/widgets/kyc_card.dart';
|
||||
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../bloc/tab_bloc.dart';
|
||||
import '../bloc/tab_event.dart';
|
||||
import '../bloc/tab_state.dart';
|
||||
@@ -19,6 +20,7 @@ class InvestLayout extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return DefaultTabController(
|
||||
length: 2,
|
||||
child: Scaffold(
|
||||
@@ -26,9 +28,9 @@ class InvestLayout extends StatelessWidget {
|
||||
body: Column(
|
||||
children: [
|
||||
TabBar(
|
||||
tabs: const [
|
||||
Tab(text: AppText.availableText),
|
||||
Tab(text: AppText.closedText),
|
||||
tabs: [
|
||||
Tab(text: localizations.translate(AppText.availableText)),
|
||||
Tab(text: localizations.translate(AppText.closedText)),
|
||||
],
|
||||
labelStyle: GoogleFonts.dmSans(
|
||||
fontWeight: FontWeight.bold,
|
||||
@@ -82,7 +84,7 @@ class AvailableItemsScreen extends StatelessWidget {
|
||||
horizontal: 16,
|
||||
vertical: 18,
|
||||
),
|
||||
child: kycCard())
|
||||
child: kycCard(context))
|
||||
: GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.investDetailScreen,
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:tanami_app/features/MainScreens/Portfolio/presentation/bloc/caro
|
||||
|
||||
import '../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
import 'invest_layout.dart';
|
||||
|
||||
@@ -18,6 +19,7 @@ class InvestScreen extends StatefulWidget {
|
||||
class _InvestScreenState extends State<InvestScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: AppBar(
|
||||
@@ -27,7 +29,7 @@ class _InvestScreenState extends State<InvestScreen> {
|
||||
scrolledUnderElevation: 0,
|
||||
automaticallyImplyLeading: false,
|
||||
title: TextWidget().text22W700(
|
||||
AppText.investText,
|
||||
localizations.translate(AppText.investText),
|
||||
clr: AppColor.charcoalColor,
|
||||
),
|
||||
titleSpacing: 16,
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:tanami_app/features/MainScreens/Invest/presentation/bloc/payment
|
||||
|
||||
import '../../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import 'invest_payment_layout.dart';
|
||||
|
||||
class InvestPaymentScreen extends StatelessWidget {
|
||||
@@ -13,6 +14,7 @@ class InvestPaymentScreen extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: AppBar(
|
||||
@@ -21,7 +23,7 @@ class InvestPaymentScreen extends StatelessWidget {
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.investmentDetailsText,
|
||||
localizations.translate(AppText.investmentDetailsText),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
|
||||
import '../../../../../core/styles/app_images.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class InvestClosedDetailsSection extends StatelessWidget {
|
||||
@@ -12,6 +13,7 @@ class InvestClosedDetailsSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Column(
|
||||
children: [
|
||||
Container(
|
||||
@@ -71,7 +73,7 @@ class InvestClosedDetailsSection extends StatelessWidget {
|
||||
5.w,
|
||||
),
|
||||
TextWidget().text12W700(
|
||||
"${AppText.closedDateText}: ",
|
||||
"${localizations.translate(AppText.closedDateText)}: ",
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
TextWidget().text12W500(
|
||||
@@ -127,7 +129,7 @@ class InvestClosedDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.sponsorNameText}:",
|
||||
"${localizations.translate(AppText.sponsorNameText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -149,7 +151,7 @@ class InvestClosedDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.actualReturnToDate}:",
|
||||
"${localizations.translate(AppText.actualReturnToDate)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -171,7 +173,7 @@ class InvestClosedDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.holdingPeriodText}:",
|
||||
"${localizations.translate(AppText.holdingPeriodText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -191,7 +193,7 @@ class InvestClosedDetailsSection extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
"${AppText.expectedExitDate}:",
|
||||
"${localizations.translate(AppText.expectedExitDate)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class InvestDetailDetailsSection extends StatelessWidget {
|
||||
@@ -12,6 +13,7 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Column(
|
||||
children: [
|
||||
Container(
|
||||
@@ -48,8 +50,8 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
? const SizedBox()
|
||||
: TextWidget().text11W700(
|
||||
type == "closed"
|
||||
? "100% ${AppText.fundedText}"
|
||||
: "60% ${AppText.fundedText}",
|
||||
? "100% ${localizations.translate(AppText.fundedText)}"
|
||||
: "60% ${localizations.translate(AppText.fundedText)}",
|
||||
clr: AppColor.portoflioCardTextColor),
|
||||
type == "closed" ? const SizedBox() : const Gap(8.0),
|
||||
TextWidget().text14W400(
|
||||
@@ -81,7 +83,7 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.sponsorNameText}:",
|
||||
"${localizations.translate(AppText.sponsorNameText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -103,7 +105,7 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.estimatedReturnText}:",
|
||||
"${localizations.translate(AppText.estimatedReturnText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -129,8 +131,8 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
type == "closed"
|
||||
? "${AppText.actualReturnToDate}:"
|
||||
: "${AppText.actualEstimatedReturnText}:",
|
||||
? "${localizations.translate(AppText.actualReturnToDate)}:"
|
||||
: "${localizations.translate(AppText.actualEstimatedReturnText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -158,7 +160,7 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.holdingPeriodText}:",
|
||||
"${localizations.translate(AppText.holdingPeriodText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -180,8 +182,8 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
type == "closed"
|
||||
? "${AppText.expectedExitDate}:"
|
||||
: "${AppText.payoutDateText}:",
|
||||
? "${localizations.translate(AppText.expectedExitDate)}:"
|
||||
: "${localizations.translate(AppText.payoutDateText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -197,7 +199,7 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
"${AppText.minimumInvestmentText}:",
|
||||
"${localizations.translate(AppText.minimumInvestmentText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
|
||||
import '../../../../../core/styles/app_images.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
import '../../../Portfolio/presentation/bloc/carousel/carousel_bloc.dart';
|
||||
import '../../../Portfolio/presentation/bloc/carousel/carousel_event.dart';
|
||||
@@ -29,6 +30,7 @@ class InvestDetailCarouselView extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Container(
|
||||
height: 190.h,
|
||||
decoration: const BoxDecoration(
|
||||
@@ -138,8 +140,8 @@ class InvestDetailCarouselView extends StatelessWidget {
|
||||
),
|
||||
TextWidget().text11W500(
|
||||
type == "closed"
|
||||
? '${AppText.closedDateText} Jul 10 2025'
|
||||
: '${AppText.closingDateText} Jul 10 2025',
|
||||
? '${localizations.translate(AppText.closedDateText)} Jul 10 2025'
|
||||
: '${localizations.translate(AppText.closingDateText)} Jul 10 2025',
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
|
||||
import '../../../../../core/styles/app_images.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class InvestDetailsSection extends StatelessWidget {
|
||||
@@ -12,6 +13,7 @@ class InvestDetailsSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Column(
|
||||
children: [
|
||||
Container(
|
||||
@@ -71,7 +73,7 @@ class InvestDetailsSection extends StatelessWidget {
|
||||
5.w,
|
||||
),
|
||||
TextWidget().text12W700(
|
||||
"${AppText.closingDateText}: ",
|
||||
"${localizations.translate(AppText.closingDateText)}: ",
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
TextWidget().text12W500(
|
||||
@@ -96,7 +98,8 @@ class InvestDetailsSection extends StatelessWidget {
|
||||
AppColor.investTextColor),
|
||||
),
|
||||
const Gap(8.0),
|
||||
TextWidget().text11W700("60% ${AppText.fundedText}",
|
||||
TextWidget().text11W700(
|
||||
"60% ${localizations.translate(AppText.fundedText)}",
|
||||
clr: AppColor.portoflioCardTextColor),
|
||||
const Gap(8.0),
|
||||
TextWidget().text14W400(
|
||||
@@ -127,7 +130,7 @@ class InvestDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.sponsorNameText}:",
|
||||
"${localizations.translate(AppText.sponsorNameText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -149,7 +152,7 @@ class InvestDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.estimatedReturnText}:",
|
||||
"${localizations.translate(AppText.estimatedReturnText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -171,7 +174,7 @@ class InvestDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.holdingPeriodText}:",
|
||||
"${localizations.translate(AppText.holdingPeriodText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -191,7 +194,7 @@ class InvestDetailsSection extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
"${AppText.minimumInvestmentText}:",
|
||||
"${localizations.translate(AppText.minimumInvestmentText)}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
|
||||
@@ -6,12 +6,14 @@ import 'package:tanami_app/core/styles/app_images.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class InvestIncludedDocumentsSection extends StatelessWidget {
|
||||
const InvestIncludedDocumentsSection({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
@@ -32,7 +34,7 @@ class InvestIncludedDocumentsSection extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text15W700(
|
||||
AppText.includeddocs,
|
||||
localizations.translate(AppText.includeddocs),
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
Gap(
|
||||
|
||||
@@ -4,12 +4,14 @@ import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:tanami_app/core/styles/app_images.dart';
|
||||
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class InvestVideoSection extends StatelessWidget {
|
||||
const InvestVideoSection({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
@@ -29,7 +31,7 @@ class InvestVideoSection extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.videosTitle,
|
||||
localizations.translate(AppText.videosTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 15.sp,
|
||||
|
||||
@@ -7,12 +7,14 @@ import 'package:tanami_app/core/styles/app_images.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class KeyInvestmentSection extends StatelessWidget {
|
||||
const KeyInvestmentSection({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 5),
|
||||
@@ -34,7 +36,7 @@ class KeyInvestmentSection extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text15W700(
|
||||
AppText.keyMeritsOfInvestmentText,
|
||||
localizations.translate(AppText.keyMeritsOfInvestmentText),
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
Gap(
|
||||
|
||||
@@ -6,7 +6,10 @@ 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';
|
||||
|
||||
Widget kycCard() {
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
Widget kycCard(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Container(
|
||||
clipBehavior: Clip.antiAlias,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
||||
@@ -42,11 +45,12 @@ Widget kycCard() {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W600(
|
||||
AppText.completeYourVerification,
|
||||
localizations.translate(AppText.completeYourVerification),
|
||||
clr: AppColor.languageTextColor,
|
||||
),
|
||||
TextWidget().text11W500(
|
||||
AppText.verifyYourAccountInUnderMinutesToStartInvestingToday,
|
||||
localizations.translate(AppText
|
||||
.verifyYourAccountInUnderMinutesToStartInvestingToday),
|
||||
clr: AppColor.languageTextColor,
|
||||
),
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@ import '../../../../../../core/routes/route_name.dart';
|
||||
import '../../../../../../core/routes/routes.dart';
|
||||
import '../../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../../shared/components/button_widget.dart';
|
||||
|
||||
class ConfirmInvestBottomSection extends StatelessWidget {
|
||||
@@ -14,6 +15,7 @@ class ConfirmInvestBottomSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Container(
|
||||
margin: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
@@ -27,7 +29,7 @@ class ConfirmInvestBottomSection extends StatelessWidget {
|
||||
goRouter.pushNamed(RouteName.otpScreen,
|
||||
pathParameters: {"fromScreen": "confirm-investment"});
|
||||
},
|
||||
text: AppText.investText,
|
||||
text: localizations.translate(AppText.investText),
|
||||
clr: AppColor.primaryColor2,
|
||||
),
|
||||
);
|
||||
|
||||
@@ -5,11 +5,14 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class ConfirmInvestTopSection extends StatelessWidget {
|
||||
const ConfirmInvestTopSection({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
@@ -67,32 +70,36 @@ class ConfirmInvestTopSection extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
child: const Column(
|
||||
child: Column(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(12.0),
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
child: Column(
|
||||
children: [
|
||||
InvestmentDetailRow(
|
||||
label: AppText.investmentamount,
|
||||
label: localizations
|
||||
.translate(AppText.investmentamount),
|
||||
value: 'SAR 1,000',
|
||||
subTitle: "\$ 267,00",
|
||||
),
|
||||
SizedBox(height: 8.0),
|
||||
const SizedBox(height: 8.0),
|
||||
InvestmentDetailRow(
|
||||
label: AppText.paymentMethod,
|
||||
label:
|
||||
localizations.translate(AppText.paymentMethod),
|
||||
value: 'Wallet',
|
||||
subTitle: "",
|
||||
),
|
||||
SizedBox(height: 8.0),
|
||||
const SizedBox(height: 8.0),
|
||||
InvestmentDetailRow(
|
||||
label: AppText.currentExchangeText,
|
||||
label: localizations
|
||||
.translate(AppText.currentExchangeText),
|
||||
value: 'SAR 1 = USD 0.27',
|
||||
subTitle: "",
|
||||
),
|
||||
SizedBox(height: 8.0),
|
||||
const SizedBox(height: 8.0),
|
||||
InvestmentDetailRow(
|
||||
label: '${AppText.totalDebitedAmountText}:',
|
||||
label:
|
||||
'${localizations.translate(AppText.totalDebitedAmountText)}:',
|
||||
value: 'SAR 1,000',
|
||||
subTitle: "",
|
||||
),
|
||||
|
||||
@@ -10,6 +10,7 @@ import '../../../../../../core/routes/routes.dart';
|
||||
import '../../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../../core/styles/app_images.dart';
|
||||
import '../../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../../shared/components/button_widget.dart';
|
||||
import '../../../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
|
||||
import '../../../../../countrySelection/presentation/bloc/choose_country_state.dart';
|
||||
@@ -21,6 +22,7 @@ class InvestPayBottomSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
@@ -61,7 +63,8 @@ class InvestPayBottomSection extends StatelessWidget {
|
||||
),
|
||||
const Gap(5),
|
||||
Text(
|
||||
AppText.payWithAppleText,
|
||||
localizations
|
||||
.translate(AppText.payWithAppleText),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: state.isFormValid
|
||||
? AppColor.plainWhite
|
||||
@@ -93,7 +96,8 @@ class InvestPayBottomSection extends StatelessWidget {
|
||||
});
|
||||
}
|
||||
},
|
||||
text: AppText.confirmInvestmentText,
|
||||
text: localizations
|
||||
.translate(AppText.confirmInvestmentText),
|
||||
clr: state.isFormValid
|
||||
? AppColor.primaryColor2
|
||||
: AppColor.inactiveBtnColor),
|
||||
|
||||
@@ -8,6 +8,7 @@ import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
|
||||
import '../../../../../countrySelection/presentation/bloc/choose_country_event.dart';
|
||||
import '../../../../../countrySelection/presentation/bloc/choose_country_state.dart';
|
||||
@@ -17,6 +18,7 @@ class InvestPayMethodSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
final radioBloc = context.read<RadioBloc>();
|
||||
return Padding(
|
||||
padding: const EdgeInsets.fromLTRB(16.0, 0.0, 16.0, 0.0),
|
||||
@@ -30,7 +32,8 @@ class InvestPayMethodSection extends StatelessWidget {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text15W700(AppText.choosePaymentMethodText,
|
||||
TextWidget().text15W700(
|
||||
localizations.translate(AppText.choosePaymentMethodText),
|
||||
clr: AppColor.plainBlack),
|
||||
const Gap(16),
|
||||
GestureDetector(
|
||||
@@ -88,7 +91,9 @@ class InvestPayMethodSection extends StatelessWidget {
|
||||
const Gap(5),
|
||||
SvgPicture.asset(AppImages.walletIcon),
|
||||
const Gap(5),
|
||||
TextWidget().text14W700(AppText.walletText,
|
||||
TextWidget().text14W700(
|
||||
localizations
|
||||
.translate(AppText.walletText),
|
||||
clr: AppColor.textLabelColor),
|
||||
],
|
||||
),
|
||||
@@ -98,7 +103,8 @@ class InvestPayMethodSection extends StatelessWidget {
|
||||
text: TextSpan(
|
||||
children: [
|
||||
TextSpan(
|
||||
text: '${AppText.balanceText}: ',
|
||||
text:
|
||||
'${localizations.translate(AppText.balanceText)}: ',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.grey,
|
||||
fontSize: 12.0,
|
||||
@@ -196,7 +202,9 @@ class InvestPayMethodSection extends StatelessWidget {
|
||||
const Gap(5),
|
||||
SvgPicture.asset(AppImages.applePayIcon),
|
||||
const Gap(5),
|
||||
TextWidget().text14W700(AppText.applePayText,
|
||||
TextWidget().text14W700(
|
||||
localizations
|
||||
.translate(AppText.applePayText),
|
||||
clr: AppColor.textLabelColor),
|
||||
],
|
||||
),
|
||||
@@ -206,7 +214,8 @@ class InvestPayMethodSection extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: TextWidget().text14W500(
|
||||
AppText.instantTransferFundsApplePayText,
|
||||
localizations.translate(
|
||||
AppText.instantTransferFundsApplePayText),
|
||||
clr: AppColor.textLabelColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
|
||||
@@ -7,6 +7,7 @@ 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 '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../../core/utils/text_formatter/comma_input_text_formatter.dart';
|
||||
import '../../../../../../shared/components/text_from_field_widget.dart';
|
||||
import '../../../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
|
||||
@@ -20,6 +21,7 @@ class InvestPayTopSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
final investPaymentBloc = context.read<InvestPaymentBloc>();
|
||||
|
||||
return Padding(
|
||||
@@ -27,7 +29,8 @@ class InvestPayTopSection extends StatelessWidget {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text15W700(AppText.enterInvestmentAmountText,
|
||||
TextWidget().text15W700(
|
||||
localizations.translate(AppText.enterInvestmentAmountText),
|
||||
clr: AppColor.plainBlack),
|
||||
const Gap(16.0),
|
||||
Container(
|
||||
@@ -111,8 +114,9 @@ class InvestPayTopSection extends StatelessWidget {
|
||||
.amountController
|
||||
.text
|
||||
.isEmpty) {
|
||||
return AppText
|
||||
.pleaseEnterAmountText;
|
||||
return localizations.translate(
|
||||
AppText
|
||||
.pleaseEnterAmountText);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
@@ -129,7 +133,8 @@ class InvestPayTopSection extends StatelessWidget {
|
||||
textEditingController:
|
||||
investPaymentBloc
|
||||
.amountController,
|
||||
hintText: AppText.enterAmountText,
|
||||
hintText: localizations.translate(
|
||||
AppText.enterAmountText),
|
||||
suffixIcon: const SizedBox(),
|
||||
),
|
||||
],
|
||||
@@ -149,8 +154,8 @@ class InvestPayTopSection extends StatelessWidget {
|
||||
}
|
||||
return selectedIndex == 0
|
||||
? const SizedBox()
|
||||
: const Padding(
|
||||
padding: EdgeInsets.all(12.0),
|
||||
: Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
child: Column(
|
||||
children: [
|
||||
// InvestmentDetailRow(
|
||||
@@ -159,13 +164,14 @@ class InvestPayTopSection extends StatelessWidget {
|
||||
// ),
|
||||
// SizedBox(height: 8.0),
|
||||
InvestmentDetailRow(
|
||||
label: AppText.processingFees,
|
||||
label: localizations
|
||||
.translate(AppText.processingFees),
|
||||
value: '3%',
|
||||
),
|
||||
SizedBox(height: 8.0),
|
||||
const SizedBox(height: 8.0),
|
||||
InvestmentDetailRow(
|
||||
label:
|
||||
'${AppText.totalInvestmentAmountText}:',
|
||||
'${localizations.translate(AppText.totalInvestmentAmountText)}:',
|
||||
value: 'SAR 1000',
|
||||
),
|
||||
],
|
||||
@@ -197,14 +203,16 @@ class InvestPayTopSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 0.8.sw,
|
||||
child: TextWidget().text12W500(
|
||||
AppText.retailInvestirCanInvestMaxText,
|
||||
localizations.translate(
|
||||
AppText.retailInvestirCanInvestMaxText),
|
||||
clr: AppColor.infoTextColor,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 0.8.sw,
|
||||
child: TextWidget().text12W700(
|
||||
AppText.upgradeYourInvestorStatusToIncreaseText,
|
||||
localizations.translate(
|
||||
AppText.upgradeYourInvestorStatusToIncreaseText),
|
||||
clr: AppColor.infoTextColor,
|
||||
txtDec: TextDecoration.underline,
|
||||
decClr: AppColor.infoTextColor,
|
||||
@@ -231,7 +239,8 @@ class InvestPayTopSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 0.8.sw,
|
||||
child: TextWidget().text12W500(
|
||||
AppText.thisIsUsdInvestmentOpportunityText,
|
||||
localizations
|
||||
.translate(AppText.thisIsUsdInvestmentOpportunityText),
|
||||
clr: AppColor.languageTextColor,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:tanami_app/core/routes/routes.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class InvestmentOverSubscribedDialog extends StatelessWidget {
|
||||
@@ -11,6 +12,7 @@ class InvestmentOverSubscribedDialog extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return AlertDialog(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
shape: RoundedRectangleBorder(
|
||||
@@ -29,7 +31,7 @@ class InvestmentOverSubscribedDialog extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
TextWidget().text17W700(
|
||||
AppText.unableToProcessTransactionText,
|
||||
localizations.translate(AppText.unableToProcessTransactionText),
|
||||
clr: AppColor.textLabelColor,
|
||||
),
|
||||
],
|
||||
@@ -38,7 +40,8 @@ class InvestmentOverSubscribedDialog extends StatelessWidget {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
TextWidget().text15W500(
|
||||
AppText.investmentOpportunityHasReachedMaxcapText,
|
||||
localizations
|
||||
.translate(AppText.investmentOpportunityHasReachedMaxcapText),
|
||||
clr: AppColor.hintTextColor,
|
||||
),
|
||||
const Gap(20),
|
||||
@@ -48,7 +51,8 @@ class InvestmentOverSubscribedDialog extends StatelessWidget {
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
},
|
||||
child: TextWidget().text14W500(AppText.backToInvestmentText,
|
||||
child: TextWidget().text14W500(
|
||||
localizations.translate(AppText.backToInvestmentText),
|
||||
textDecoration: TextDecoration.underline,
|
||||
clr: AppColor.otpTextColor),
|
||||
),
|
||||
|
||||
@@ -9,12 +9,14 @@ import 'package:tanami_app/features/MainScreens/Portfolio/presentation/widgets/p
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class PortfolioLayout extends StatelessWidget {
|
||||
const PortfolioLayout({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: CustomScrollView(
|
||||
@@ -43,7 +45,7 @@ class PortfolioLayout extends StatelessWidget {
|
||||
child: Row(
|
||||
children: [
|
||||
TextWidget().text12W700(
|
||||
AppText.portfolio,
|
||||
localizations.translate(AppText.portfolio),
|
||||
clr: const Color(0xFF888888),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
@@ -70,7 +72,7 @@ class PortfolioLayout extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W700(
|
||||
AppText.portfolioText,
|
||||
localizations.translate(AppText.portfolioText),
|
||||
clr: const Color(0xFFC9D9CB),
|
||||
),
|
||||
Gap(8.h),
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class DetailsSection extends StatelessWidget {
|
||||
@@ -11,6 +12,7 @@ class DetailsSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Column(
|
||||
children: [
|
||||
Container(
|
||||
@@ -56,7 +58,7 @@ class DetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
AppText.investmentamount,
|
||||
localizations.translate(AppText.investmentamount),
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -87,7 +89,7 @@ class DetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
AppText.currentval,
|
||||
localizations.translate(AppText.currentval),
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -118,7 +120,7 @@ class DetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
AppText.disttodate,
|
||||
localizations.translate(AppText.disttodate),
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -138,7 +140,7 @@ class DetailsSection extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
AppText.totalreturn,
|
||||
localizations.translate(AppText.totalreturn),
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
|
||||
@@ -8,6 +8,7 @@ import '../../../../../core/routes/routes.dart';
|
||||
import '../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../core/styles/app_images.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class ExitedCard extends StatelessWidget {
|
||||
@@ -19,6 +20,7 @@ class ExitedCard extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: GestureDetector(
|
||||
@@ -112,7 +114,7 @@ class ExitedCard extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
AppText.investmentamount,
|
||||
localizations.translate(AppText.investmentamount),
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
),
|
||||
Column(
|
||||
@@ -138,7 +140,7 @@ class ExitedCard extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
AppText.currentval,
|
||||
localizations.translate(AppText.currentval),
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
),
|
||||
Column(
|
||||
@@ -164,7 +166,7 @@ class ExitedCard extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
AppText.totalreturn,
|
||||
localizations.translate(AppText.totalreturn),
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
|
||||
@@ -6,12 +6,14 @@ import 'package:tanami_app/core/styles/app_images.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class IncludedDocumentsSection extends StatelessWidget {
|
||||
const IncludedDocumentsSection({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
@@ -32,7 +34,7 @@ class IncludedDocumentsSection extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text15W700(
|
||||
AppText.includeddocs,
|
||||
localizations.translate(AppText.includeddocs),
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
Gap(
|
||||
|
||||
@@ -8,6 +8,7 @@ import '../../../../../core/routes/routes.dart';
|
||||
import '../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../core/styles/app_images.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class PendingCard extends StatelessWidget {
|
||||
@@ -19,6 +20,7 @@ class PendingCard extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: GestureDetector(
|
||||
@@ -112,7 +114,7 @@ class PendingCard extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
AppText.investmentamount,
|
||||
localizations.translate(AppText.investmentamount),
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
),
|
||||
Column(
|
||||
@@ -138,7 +140,7 @@ class PendingCard extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
AppText.currentval,
|
||||
localizations.translate(AppText.currentval),
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
),
|
||||
Column(
|
||||
@@ -164,7 +166,7 @@ class PendingCard extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
AppText.totalreturn,
|
||||
localizations.translate(AppText.totalreturn),
|
||||
clr: const Color(0xFF535353),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:tanami_app/features/MainScreens/Settings/presentation/pages/sett
|
||||
|
||||
import '../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class SettingsScreen extends StatefulWidget {
|
||||
@@ -15,6 +16,7 @@ class SettingsScreen extends StatefulWidget {
|
||||
class _SettingsScreenState extends State<SettingsScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: AppBar(
|
||||
@@ -24,7 +26,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
automaticallyImplyLeading: false,
|
||||
centerTitle: true,
|
||||
title: TextWidget().text22W700(
|
||||
AppText.settingsText,
|
||||
localizations.translate(AppText.settingsText),
|
||||
clr: AppColor.charcoalColor,
|
||||
),
|
||||
titleSpacing: 16,
|
||||
|
||||
@@ -12,6 +12,7 @@ import '../../../../../../core/routes/routes.dart';
|
||||
import '../../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../../core/styles/app_images.dart';
|
||||
import '../../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../../core/utils/text_formatter/comma_input_text_formatter.dart';
|
||||
import '../../../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
|
||||
import '../../../../../countrySelection/presentation/bloc/choose_country_state.dart';
|
||||
@@ -25,6 +26,7 @@ class DepositLayout extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
final depositPaymentBloc = context.read<DepositPaymentBloc>();
|
||||
|
||||
return Scaffold(
|
||||
@@ -66,7 +68,8 @@ class DepositLayout extends StatelessWidget {
|
||||
),
|
||||
const Gap(5),
|
||||
Text(
|
||||
AppText.payWithAppleText,
|
||||
localizations
|
||||
.translate(AppText.payWithAppleText),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: state.isFormValid
|
||||
? AppColor.plainWhite
|
||||
@@ -90,7 +93,7 @@ class DepositLayout extends StatelessWidget {
|
||||
: AppColor.inactiveBtnColor),
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppText.depositNoti,
|
||||
localizations.translate(AppText.depositNoti),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: state.isFormValid
|
||||
? AppColor.plainWhite
|
||||
@@ -118,7 +121,7 @@ class DepositLayout extends StatelessWidget {
|
||||
text: TextSpan(
|
||||
children: [
|
||||
TextSpan(
|
||||
text: '${AppText.balance}: ',
|
||||
text: '${localizations.translate(AppText.balance)}: ',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.grey,
|
||||
fontSize: 12.sp,
|
||||
@@ -178,7 +181,7 @@ class DepositLayout extends StatelessWidget {
|
||||
width: 12.w,
|
||||
),
|
||||
Text(
|
||||
AppText.depositTitle,
|
||||
localizations.translate(AppText.depositTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 17.sp,
|
||||
@@ -221,7 +224,8 @@ class DepositLayout extends StatelessWidget {
|
||||
validator: (value) {
|
||||
if (depositPaymentBloc
|
||||
.amountController.text.isEmpty) {
|
||||
return AppText.pleaseEnterAmountText;
|
||||
return localizations.translate(
|
||||
AppText.pleaseEnterAmountText);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
@@ -312,7 +316,8 @@ class DepositLayout extends StatelessWidget {
|
||||
MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
AppText.processingFees,
|
||||
localizations
|
||||
.translate(AppText.processingFees),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF535353),
|
||||
fontSize: 14.sp,
|
||||
@@ -334,7 +339,8 @@ class DepositLayout extends StatelessWidget {
|
||||
MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
AppText.depositAmt,
|
||||
localizations
|
||||
.translate(AppText.depositAmt),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF535353),
|
||||
fontSize: 14.sp,
|
||||
|
||||
@@ -6,6 +6,8 @@ import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/features/MainScreens/Wallet/presentation/bloc/deposit/deposit_payment_bloc.dart';
|
||||
import 'package:tanami_app/features/MainScreens/Wallet/presentation/pages/deposit/deposit_layout.dart';
|
||||
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class DepositScreen extends StatefulWidget {
|
||||
const DepositScreen({super.key});
|
||||
|
||||
@@ -17,6 +19,7 @@ class _DepositScreenState extends State<DepositScreen> {
|
||||
int selectedIndex = 0;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBar(
|
||||
@@ -25,7 +28,7 @@ class _DepositScreenState extends State<DepositScreen> {
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.depositScreenTitle,
|
||||
localizations.translate(AppText.depositScreenTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
|
||||
@@ -6,6 +6,8 @@ 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 '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class DepositPreview extends StatefulWidget {
|
||||
const DepositPreview({super.key});
|
||||
|
||||
@@ -14,15 +16,6 @@ class DepositPreview extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _DepositPreviewState extends State<DepositPreview> {
|
||||
List titles = [
|
||||
AppText.accountHolderName,
|
||||
AppText.iban,
|
||||
AppText.beneficiaryAddress,
|
||||
AppText.bankName,
|
||||
AppText.branchAddress,
|
||||
AppText.SWIFTcode,
|
||||
AppText.refid,
|
||||
];
|
||||
List values = [
|
||||
'Name Surname',
|
||||
'DE 1234 5678 9012 3456',
|
||||
@@ -47,6 +40,16 @@ class _DepositPreviewState extends State<DepositPreview> {
|
||||
];
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
List titles = [
|
||||
localizations.translate(AppText.accountHolderName),
|
||||
localizations.translate(AppText.iban),
|
||||
localizations.translate(AppText.beneficiaryAddress),
|
||||
localizations.translate(AppText.bankName),
|
||||
localizations.translate(AppText.branchAddress),
|
||||
localizations.translate(AppText.SWIFTcode),
|
||||
localizations.translate(AppText.refid),
|
||||
];
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBar(
|
||||
@@ -55,7 +58,7 @@ class _DepositPreviewState extends State<DepositPreview> {
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.depositScreenTitle,
|
||||
localizations.translate(AppText.depositScreenTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
@@ -69,220 +72,221 @@ class _DepositPreviewState extends State<DepositPreview> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
children: [
|
||||
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,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20.h,
|
||||
),
|
||||
Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(22.r),
|
||||
color: Colors.white,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black.withOpacity(0.15),
|
||||
spreadRadius: 2,
|
||||
blurRadius: 10,
|
||||
offset: const Offset(0, 5),
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
child: Row(
|
||||
children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Color(0xFF0FA4A4)),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
child: Image.asset(
|
||||
'assets/images/wallet_screen/deposit_list.png',
|
||||
height: 36.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 12.w,
|
||||
),
|
||||
Text(
|
||||
AppText.depositTitle,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 17.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.only(
|
||||
bottomLeft: Radius.circular(22.r),
|
||||
bottomRight: Radius.circular(22.r),
|
||||
),
|
||||
color: const Color(0xFFD8D8D8).withOpacity(0.4),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
vertical: 16.0, horizontal: 12.0),
|
||||
child: ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
itemCount: titles2.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(vertical: 5.0),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
titles2[index],
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF535353),
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
(index == 0)
|
||||
? Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.end,
|
||||
children: [
|
||||
Text(
|
||||
'SAR 55,000',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'\$ 14,685',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 11.sp,
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
),
|
||||
],
|
||||
)
|
||||
: Text(
|
||||
values2[index],
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20.h,
|
||||
),
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(22.r),
|
||||
color: const Color(0xFFEEF6FB),
|
||||
border: Border.all(color: const Color(0xFF90D4FF)),
|
||||
boxShadow: const [
|
||||
BoxShadow(
|
||||
color: Color(0xFFB0D3EF),
|
||||
spreadRadius: 1,
|
||||
blurRadius: 10,
|
||||
offset: Offset(0, 3),
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
vertical: 12.0, horizontal: 16.0),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/wallet_screen/info.png',
|
||||
height: 25.h,
|
||||
),
|
||||
SizedBox(
|
||||
width: 10.w,
|
||||
),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.depositScreenTitle,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF015698),
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
const Gap(4),
|
||||
SizedBox(
|
||||
width: 280.w,
|
||||
child: Text(
|
||||
AppText.info3,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF015698),
|
||||
fontSize: 12.sp,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20.h,
|
||||
),
|
||||
// RichText(
|
||||
// text: TextSpan(
|
||||
// children: [
|
||||
// TextSpan(
|
||||
// text: '${localizations.translate(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,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// SizedBox(
|
||||
// height: 20.h,
|
||||
// ),
|
||||
// Container(
|
||||
// width: double.infinity,
|
||||
// decoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.circular(22.r),
|
||||
// color: Colors.white,
|
||||
// boxShadow: [
|
||||
// BoxShadow(
|
||||
// color: Colors.black.withOpacity(0.15),
|
||||
// spreadRadius: 2,
|
||||
// blurRadius: 10,
|
||||
// offset: const Offset(0, 5),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// child: Column(
|
||||
// children: [
|
||||
// Padding(
|
||||
// padding: const EdgeInsets.all(12.0),
|
||||
// child: Row(
|
||||
// children: [
|
||||
// Container(
|
||||
// decoration: const BoxDecoration(
|
||||
// shape: BoxShape.circle,
|
||||
// color: Color(0xFF0FA4A4)),
|
||||
// child: Padding(
|
||||
// padding: const EdgeInsets.all(12.0),
|
||||
// child: Image.asset(
|
||||
// 'assets/images/wallet_screen/deposit_list.png',
|
||||
// height: 36.h,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// SizedBox(
|
||||
// width: 12.w,
|
||||
// ),
|
||||
// Text(
|
||||
// localizations.translate (AppText.depositTitle),
|
||||
// style: GoogleFonts.dmSans(
|
||||
// color: Colors.black,
|
||||
// fontSize: 17.sp,
|
||||
// fontWeight: FontWeight.w700,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// Container(
|
||||
// decoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.only(
|
||||
// bottomLeft: Radius.circular(22.r),
|
||||
// bottomRight: Radius.circular(22.r),
|
||||
// ),
|
||||
// color: const Color(0xFFD8D8D8).withOpacity(0.4),
|
||||
// ),
|
||||
// child: Padding(
|
||||
// padding: const EdgeInsets.symmetric(
|
||||
// vertical: 16.0, horizontal: 12.0),
|
||||
// child: ListView.builder(
|
||||
// physics: const NeverScrollableScrollPhysics(),
|
||||
// shrinkWrap: true,
|
||||
// itemCount: titles2.length,
|
||||
// itemBuilder: (context, index) {
|
||||
// return Padding(
|
||||
// padding:
|
||||
// const EdgeInsets.symmetric(vertical: 5.0),
|
||||
// child: Row(
|
||||
// crossAxisAlignment: CrossAxisAlignment.center,
|
||||
// mainAxisAlignment:
|
||||
// MainAxisAlignment.spaceBetween,
|
||||
// children: [
|
||||
// Text(
|
||||
// titles2[index],
|
||||
// style: GoogleFonts.dmSans(
|
||||
// color: const Color(0xFF535353),
|
||||
// fontSize: 14.sp,
|
||||
// fontWeight: FontWeight.w500,
|
||||
// ),
|
||||
// ),
|
||||
// (index == 0)
|
||||
// ? Column(
|
||||
// crossAxisAlignment:
|
||||
// CrossAxisAlignment.end,
|
||||
// children: [
|
||||
// Text(
|
||||
// 'SAR 55,000',
|
||||
// style: GoogleFonts.dmSans(
|
||||
// color: Colors.black,
|
||||
// fontSize: 14.sp,
|
||||
// fontWeight: FontWeight.w700,
|
||||
// ),
|
||||
// ),
|
||||
// Text(
|
||||
// '\$ 14,685',
|
||||
// style: GoogleFonts.dmSans(
|
||||
// color: Colors.black,
|
||||
// fontSize: 11.sp,
|
||||
// fontWeight: FontWeight.w400,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// )
|
||||
// : Text(
|
||||
// values2[index],
|
||||
// style: GoogleFonts.dmSans(
|
||||
// color: Colors.black,
|
||||
// fontSize: 14.sp,
|
||||
// fontWeight: FontWeight.w700,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// );
|
||||
// },
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
|
||||
// SizedBox(
|
||||
// height: 20.h,
|
||||
// ),
|
||||
// Container(
|
||||
// decoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.circular(22.r),
|
||||
// color: const Color(0xFFEEF6FB),
|
||||
// border: Border.all(color: const Color(0xFF90D4FF)),
|
||||
// boxShadow: const [
|
||||
// BoxShadow(
|
||||
// color: Color(0xFFB0D3EF),
|
||||
// spreadRadius: 1,
|
||||
// blurRadius: 10,
|
||||
// offset: Offset(0, 3),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// child: Padding(
|
||||
// padding: const EdgeInsets.symmetric(
|
||||
// vertical: 12.0, horizontal: 16.0),
|
||||
// child: Row(
|
||||
// crossAxisAlignment: CrossAxisAlignment.center,
|
||||
// children: [
|
||||
// Image.asset(
|
||||
// 'assets/images/wallet_screen/info.png',
|
||||
// height: 25.h,
|
||||
// ),
|
||||
// SizedBox(
|
||||
// width: 10.w,
|
||||
// ),
|
||||
// Expanded(
|
||||
// child: Column(
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
// children: [
|
||||
// Text(
|
||||
// AppText.depositScreenTitle,
|
||||
// style: GoogleFonts.dmSans(
|
||||
// color: const Color(0xFF015698),
|
||||
// fontSize: 14.sp,
|
||||
// fontWeight: FontWeight.w700,
|
||||
// ),
|
||||
// ),
|
||||
// const Gap(4),
|
||||
// SizedBox(
|
||||
// width: 280.w,
|
||||
// child: Text(
|
||||
// AppText.info3,
|
||||
// style: GoogleFonts.dmSans(
|
||||
// color: const Color(0xFF015698),
|
||||
// fontSize: 12.sp,
|
||||
// fontWeight: FontWeight.w500,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// SizedBox(
|
||||
// height: 20.h,
|
||||
// ),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.depositDetails,
|
||||
localizations.translate(AppText.depositDetails),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 15.sp,
|
||||
@@ -387,7 +391,7 @@ class _DepositPreviewState extends State<DepositPreview> {
|
||||
padding: const EdgeInsets.symmetric(vertical: 20.0),
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppText.submitDeposit,
|
||||
localizations.translate(AppText.submitDeposit),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.white,
|
||||
fontSize: 14.sp,
|
||||
@@ -405,7 +409,7 @@ class _DepositPreviewState extends State<DepositPreview> {
|
||||
},
|
||||
child: Center(
|
||||
child: TextWidget().text14W700(
|
||||
AppText.back,
|
||||
localizations.translate(AppText.back),
|
||||
clr: const Color(0xFF363636),
|
||||
textDecoration: TextDecoration.underline,
|
||||
),
|
||||
|
||||
@@ -6,6 +6,8 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class FilterScreen extends StatefulWidget {
|
||||
const FilterScreen({super.key});
|
||||
|
||||
@@ -14,13 +16,6 @@ class FilterScreen extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _FilterScreenState extends State<FilterScreen> {
|
||||
List actions = [
|
||||
AppText.deposit,
|
||||
AppText.withdrawal,
|
||||
AppText.yield,
|
||||
AppText.refund,
|
||||
AppText.investment,
|
||||
];
|
||||
List selected = [
|
||||
false,
|
||||
false,
|
||||
@@ -32,6 +27,14 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
int statusIndex = 0;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
List actions = [
|
||||
localizations.translate(AppText.deposit),
|
||||
localizations.translate(AppText.withdrawal),
|
||||
localizations.translate(AppText.yield),
|
||||
localizations.translate(AppText.refund),
|
||||
localizations.translate(AppText.investment),
|
||||
];
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBar(
|
||||
@@ -40,7 +43,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.filterTitle,
|
||||
localizations.translate(AppText.filterTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
@@ -54,7 +57,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.byDate,
|
||||
localizations.translate(AppText.byDate),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF8D8D8D),
|
||||
fontSize: 12.sp,
|
||||
@@ -76,7 +79,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
),
|
||||
const Gap(3),
|
||||
Text(
|
||||
AppText.date1,
|
||||
localizations.translate(AppText.date1),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 14.sp,
|
||||
@@ -100,7 +103,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
),
|
||||
const Gap(3),
|
||||
Text(
|
||||
AppText.date2,
|
||||
localizations.translate(AppText.date2),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 14.sp,
|
||||
@@ -111,7 +114,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
),
|
||||
const Gap(10),
|
||||
Text(
|
||||
AppText.byAction,
|
||||
localizations.translate(AppText.byAction),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF8D8D8D),
|
||||
fontSize: 12.sp,
|
||||
@@ -166,7 +169,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
),
|
||||
const Gap(10),
|
||||
Text(
|
||||
AppText.byStatus,
|
||||
localizations.translate(AppText.byStatus),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF8D8D8D),
|
||||
fontSize: 12.sp,
|
||||
@@ -188,7 +191,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
),
|
||||
const Gap(3),
|
||||
Text(
|
||||
AppText.all,
|
||||
localizations.translate(AppText.all),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 14.sp,
|
||||
@@ -212,7 +215,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
),
|
||||
const Gap(3),
|
||||
Text(
|
||||
AppText.onHold,
|
||||
localizations.translate(AppText.onHold),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 14.sp,
|
||||
@@ -233,7 +236,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
});
|
||||
},
|
||||
child: TextWidget().text14W700(
|
||||
AppText.clear,
|
||||
localizations.translate(AppText.clear),
|
||||
clr: const Color(0xFF363636),
|
||||
textDecoration: TextDecoration.underline,
|
||||
),
|
||||
@@ -257,7 +260,7 @@ class _FilterScreenState extends State<FilterScreen> {
|
||||
padding: const EdgeInsets.symmetric(vertical: 20.0),
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppText.Submit,
|
||||
localizations.translate(AppText.Submit),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.white,
|
||||
fontSize: 14.sp,
|
||||
|
||||
@@ -6,6 +6,8 @@ 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 '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class KYCScreen extends StatefulWidget {
|
||||
const KYCScreen({super.key});
|
||||
|
||||
@@ -22,6 +24,7 @@ class _KYCScreenState extends State<KYCScreen> {
|
||||
];
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBar(
|
||||
@@ -47,7 +50,7 @@ class _KYCScreenState extends State<KYCScreen> {
|
||||
height: 24.h,
|
||||
),
|
||||
Text(
|
||||
AppText.almostHere,
|
||||
localizations.translate(AppText.almostHere),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF363636),
|
||||
fontSize: 17.sp,
|
||||
@@ -60,7 +63,7 @@ class _KYCScreenState extends State<KYCScreen> {
|
||||
SizedBox(
|
||||
width: 280.w,
|
||||
child: Text(
|
||||
AppText.completeAcc,
|
||||
localizations.translate(AppText.completeAcc),
|
||||
textAlign: TextAlign.center,
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF8D8D8D),
|
||||
@@ -128,8 +131,7 @@ class _KYCScreenState extends State<KYCScreen> {
|
||||
height: 70.h,
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
},
|
||||
onTap: () {},
|
||||
child: Container(
|
||||
margin: const EdgeInsets.all(12.0),
|
||||
height: 56.h,
|
||||
@@ -142,7 +144,7 @@ class _KYCScreenState extends State<KYCScreen> {
|
||||
padding: const EdgeInsets.symmetric(vertical: 20.0),
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppText.cont,
|
||||
localizations.translate(AppText.cont),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.white,
|
||||
fontSize: 14.sp,
|
||||
@@ -157,7 +159,7 @@ class _KYCScreenState extends State<KYCScreen> {
|
||||
height: 10.h,
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
AppText.later,
|
||||
localizations.translate(AppText.later),
|
||||
clr: const Color(0xFF363636),
|
||||
textDecoration: TextDecoration.underline,
|
||||
)
|
||||
|
||||
@@ -8,20 +8,12 @@ import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/button_widget.dart';
|
||||
import 'package:ticket_widget/ticket_widget.dart';
|
||||
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class WalletDetails extends StatelessWidget {
|
||||
final String type;
|
||||
WalletDetails({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',
|
||||
@@ -36,6 +28,7 @@ class WalletDetails extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return (type == 'confirm-investment')
|
||||
? WillPopScope(
|
||||
onWillPop: () async => false,
|
||||
@@ -54,10 +47,10 @@ class WalletDetails extends StatelessWidget {
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
// goRouter.pop();
|
||||
goRouter.pop();
|
||||
// goRouter.pop();
|
||||
},
|
||||
text: AppText.closeText,
|
||||
text: localizations.translate(AppText.closeText),
|
||||
clr: AppColor.primaryColor2,
|
||||
),
|
||||
),
|
||||
@@ -71,7 +64,7 @@ class WalletDetails extends StatelessWidget {
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
goRouter.pop();
|
||||
// goRouter.pop();
|
||||
goRouter.pop();
|
||||
// goRouter.pop();
|
||||
},
|
||||
icon: const Icon(
|
||||
@@ -83,7 +76,7 @@ class WalletDetails extends StatelessWidget {
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.investmentConfirmationText,
|
||||
localizations.translate(AppText.investmentConfirmationText),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
@@ -125,7 +118,7 @@ class WalletDetails extends StatelessWidget {
|
||||
height: 16.h,
|
||||
),
|
||||
Text(
|
||||
AppText.investment,
|
||||
localizations.translate(AppText.investment),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF191B1E),
|
||||
fontSize: 14.sp,
|
||||
@@ -178,7 +171,7 @@ class WalletDetails extends StatelessWidget {
|
||||
SizedBox(
|
||||
height: 33.h,
|
||||
),
|
||||
_buildBody(),
|
||||
_buildBody(localizations),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -195,7 +188,7 @@ class WalletDetails extends StatelessWidget {
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.walletDetailsTitle,
|
||||
localizations.translate(AppText.walletDetailsTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
@@ -208,7 +201,10 @@ class WalletDetails extends StatelessWidget {
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(22.r),
|
||||
color: (type == 'Yield' || type == 'Refund')
|
||||
color: (type == 'Yield' ||
|
||||
type == 'Refund' ||
|
||||
type == 'عائد' ||
|
||||
type == 'استرداد')
|
||||
? Colors.white
|
||||
: Colors.transparent,
|
||||
boxShadow: [
|
||||
@@ -220,7 +216,10 @@ class WalletDetails extends StatelessWidget {
|
||||
),
|
||||
],
|
||||
),
|
||||
child: (type == 'Yield' || type == 'Refund')
|
||||
child: (type == 'Yield' ||
|
||||
type == 'Refund' ||
|
||||
type == 'عائد' ||
|
||||
type == 'استرداد')
|
||||
? Padding(
|
||||
padding: const EdgeInsets.fromLTRB(20.0, 30, 20, 10),
|
||||
child: Column(
|
||||
@@ -289,7 +288,7 @@ class WalletDetails extends StatelessWidget {
|
||||
SizedBox(
|
||||
height: 35.h,
|
||||
),
|
||||
_buildBody(),
|
||||
_buildBody(localizations),
|
||||
],
|
||||
),
|
||||
)
|
||||
@@ -382,7 +381,7 @@ class WalletDetails extends StatelessWidget {
|
||||
SizedBox(
|
||||
height: 33.h,
|
||||
),
|
||||
_buildBody(),
|
||||
_buildBody(localizations),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -454,12 +453,25 @@ class WalletDetails extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
Widget _buildBody() {
|
||||
if (type == 'Yield') {
|
||||
Widget _buildBody(AppLocalizations localizations) {
|
||||
final List titles = [
|
||||
localizations.translate(AppText.status),
|
||||
localizations.translate(AppText.paymentMethod),
|
||||
localizations.translate(AppText.accountName),
|
||||
localizations.translate(AppText.iban),
|
||||
localizations.translate(AppText.beneficiaryAddress),
|
||||
localizations.translate(AppText.bankName),
|
||||
localizations.translate(AppText.branchAddress),
|
||||
localizations.translate(AppText.SWIFTcode),
|
||||
localizations.translate(AppText.refid),
|
||||
];
|
||||
if (type == 'Yield' || type == "عائد") {
|
||||
return Container();
|
||||
} else if (type == 'Refund') {
|
||||
} else if (type == 'Refund' || type == 'استرداد') {
|
||||
return Container();
|
||||
} else if (type == 'Investment' || type == "confirm-investment") {
|
||||
} else if (type == 'Investment' ||
|
||||
type == "confirm-investment" ||
|
||||
type == "استثمار") {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: const BoxDecoration(
|
||||
@@ -476,7 +488,7 @@ class WalletDetails extends StatelessWidget {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
AppText.paymentMethodText,
|
||||
localizations.translate(AppText.paymentMethodText),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF535353),
|
||||
fontSize: 14.sp,
|
||||
|
||||
@@ -6,55 +6,56 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import '../../../../../core/routes/route_name.dart';
|
||||
import '../../../../../core/routes/routes.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
|
||||
List data = [
|
||||
{
|
||||
'title': AppText.deposit,
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '+ SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': AppText.withdrawal,
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': true,
|
||||
},
|
||||
{
|
||||
'title': AppText.investment,
|
||||
'subTitle': 'Name of Investment',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': AppText.yield,
|
||||
'subTitle': 'Name of Investment',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '+ SAR 100,000',
|
||||
'subValue': '+ \$100,00',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': AppText.refund,
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': true,
|
||||
},
|
||||
];
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class WalletLayout extends StatelessWidget {
|
||||
const WalletLayout({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
List data = [
|
||||
{
|
||||
'title': localizations.translate(AppText.deposit),
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '+ SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': localizations.translate(AppText.withdrawal),
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': true,
|
||||
},
|
||||
{
|
||||
'title': localizations.translate(AppText.investment),
|
||||
'subTitle': 'Name of Investment',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': localizations.translate(AppText.yield),
|
||||
'subTitle': 'Name of Investment',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '+ SAR 100,000',
|
||||
'subValue': '+ \$100,00',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': localizations.translate(AppText.refund),
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': true,
|
||||
},
|
||||
];
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: Padding(
|
||||
@@ -66,7 +67,7 @@ class WalletLayout extends StatelessWidget {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
AppText.day,
|
||||
localizations.translate(AppText.day),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF8D8D8D),
|
||||
fontSize: 11.sp,
|
||||
@@ -193,7 +194,8 @@ class WalletLayout extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.onHold,
|
||||
localizations
|
||||
.translate(AppText.onHold),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF0172CB),
|
||||
fontSize: 14.sp,
|
||||
@@ -242,7 +244,7 @@ class WalletLayout extends StatelessWidget {
|
||||
}
|
||||
|
||||
Widget getIcon(String title) {
|
||||
if (title == 'Deposit') {
|
||||
if (title == 'Deposit' || title == 'إيداع') {
|
||||
return Container(
|
||||
decoration:
|
||||
const BoxDecoration(shape: BoxShape.circle, color: Color(0xFF0FA4A4)),
|
||||
@@ -254,7 +256,7 @@ Widget getIcon(String title) {
|
||||
),
|
||||
),
|
||||
);
|
||||
} else if (title == 'Withdrawal') {
|
||||
} else if (title == 'Withdrawal' || title == 'انسحاب') {
|
||||
return Container(
|
||||
decoration:
|
||||
const BoxDecoration(shape: BoxShape.circle, color: Color(0xFFE6681F)),
|
||||
@@ -264,7 +266,7 @@ Widget getIcon(String title) {
|
||||
height: 25.h),
|
||||
),
|
||||
);
|
||||
} else if (title == 'Investment') {
|
||||
} else if (title == 'Investment' || title == 'استثمار') {
|
||||
return Container(
|
||||
decoration:
|
||||
const BoxDecoration(shape: BoxShape.circle, color: Color(0xFF0172CB)),
|
||||
@@ -274,7 +276,7 @@ Widget getIcon(String title) {
|
||||
height: 25.h),
|
||||
),
|
||||
);
|
||||
} else if (title == 'Yield') {
|
||||
} else if (title == 'Yield' || title == 'عائد') {
|
||||
return Container(
|
||||
decoration:
|
||||
const BoxDecoration(shape: BoxShape.circle, color: Color(0xFF4C4AEF)),
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:tanami_app/core/routes/route_name.dart';
|
||||
import 'package:tanami_app/core/routes/routes.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import 'wallet_layout.dart';
|
||||
|
||||
class WalletScreen extends StatefulWidget {
|
||||
@@ -24,6 +25,7 @@ class _WalletScreenState extends State<WalletScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBar(
|
||||
@@ -38,7 +40,7 @@ class _WalletScreenState extends State<WalletScreen> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.walletTitle,
|
||||
localizations.translate(AppText.walletTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF343434),
|
||||
fontSize: 14.sp,
|
||||
@@ -105,7 +107,7 @@ class _WalletScreenState extends State<WalletScreen> {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'Deposit',
|
||||
localizations.translate(AppText.deposit),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF363636),
|
||||
fontSize: 12.sp,
|
||||
@@ -140,7 +142,7 @@ class _WalletScreenState extends State<WalletScreen> {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'Withdraw',
|
||||
localizations.translate(AppText.withdraw),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF363636),
|
||||
fontSize: 12.sp,
|
||||
|
||||
@@ -5,6 +5,8 @@ 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/utils/language/localizations_delegate.dart';
|
||||
|
||||
class WithdrawalConfirmation extends StatefulWidget {
|
||||
const WithdrawalConfirmation({super.key});
|
||||
|
||||
@@ -13,16 +15,6 @@ class WithdrawalConfirmation extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _WithdrawalConfirmationState extends State<WithdrawalConfirmation> {
|
||||
final List titles = [
|
||||
AppText.paymentMethod,
|
||||
AppText.accountName,
|
||||
AppText.iban,
|
||||
AppText.beneficiaryAddress,
|
||||
AppText.bankName,
|
||||
AppText.branchAddress,
|
||||
AppText.SWIFTcode,
|
||||
AppText.refid,
|
||||
];
|
||||
final List values = [
|
||||
'Google/Apple Pay',
|
||||
'Name Surname',
|
||||
@@ -36,6 +28,17 @@ class _WithdrawalConfirmationState extends State<WithdrawalConfirmation> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
final List titles = [
|
||||
localizations.translate(AppText.paymentMethod),
|
||||
localizations.translate(AppText.accountName),
|
||||
localizations.translate(AppText.iban),
|
||||
localizations.translate(AppText.beneficiaryAddress),
|
||||
localizations.translate(AppText.bankName),
|
||||
localizations.translate(AppText.branchAddress),
|
||||
localizations.translate(AppText.SWIFTcode),
|
||||
localizations.translate(AppText.refid),
|
||||
];
|
||||
return WillPopScope(
|
||||
onWillPop: () async => false,
|
||||
child: Scaffold(
|
||||
@@ -47,7 +50,7 @@ class _WithdrawalConfirmationState extends State<WithdrawalConfirmation> {
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.previewTitle,
|
||||
localizations.translate(AppText.previewTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
@@ -90,7 +93,7 @@ class _WithdrawalConfirmationState extends State<WithdrawalConfirmation> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.info,
|
||||
localizations.translate(AppText.info),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF015698),
|
||||
fontSize: 14.sp,
|
||||
@@ -101,7 +104,7 @@ class _WithdrawalConfirmationState extends State<WithdrawalConfirmation> {
|
||||
height: 4.h,
|
||||
),
|
||||
Text(
|
||||
AppText.workingDays,
|
||||
localizations.translate(AppText.workingDays),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF015698),
|
||||
fontSize: 12.sp,
|
||||
@@ -162,7 +165,7 @@ class _WithdrawalConfirmationState extends State<WithdrawalConfirmation> {
|
||||
height: 16.h,
|
||||
),
|
||||
Text(
|
||||
AppText.withdrawal,
|
||||
localizations.translate(AppText.withdrawal),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF191B1E),
|
||||
fontSize: 14.sp,
|
||||
@@ -273,7 +276,7 @@ class _WithdrawalConfirmationState extends State<WithdrawalConfirmation> {
|
||||
padding: const EdgeInsets.symmetric(vertical: 20.0),
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppText.closeText,
|
||||
localizations.translate(AppText.closeText),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.white,
|
||||
fontSize: 14.sp,
|
||||
|
||||
@@ -6,6 +6,8 @@ import 'package:tanami_app/core/routes/route_name.dart';
|
||||
import 'package:tanami_app/core/routes/routes.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
class WithdrawalPreview extends StatefulWidget {
|
||||
const WithdrawalPreview({super.key});
|
||||
|
||||
@@ -16,13 +18,14 @@ class WithdrawalPreview extends StatefulWidget {
|
||||
class _WithdrawalPreviewState extends State<WithdrawalPreview> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
List titles = [
|
||||
AppText.accountHolderName,
|
||||
AppText.iban,
|
||||
AppText.beneficiaryAddress,
|
||||
AppText.bankName,
|
||||
AppText.branchAddress,
|
||||
AppText.SWIFTcode,
|
||||
localizations.translate(AppText.accountHolderName),
|
||||
localizations.translate(AppText.iban),
|
||||
localizations.translate(AppText.beneficiaryAddress),
|
||||
localizations.translate(AppText.bankName),
|
||||
localizations.translate(AppText.branchAddress),
|
||||
localizations.translate(AppText.SWIFTcode),
|
||||
];
|
||||
List values = [
|
||||
'Name Surname',
|
||||
@@ -40,7 +43,7 @@ class _WithdrawalPreviewState extends State<WithdrawalPreview> {
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.previewTitle,
|
||||
localizations.translate(AppText.previewTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
@@ -67,7 +70,7 @@ class _WithdrawalPreviewState extends State<WithdrawalPreview> {
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppText.info1,
|
||||
localizations.translate(AppText.info1),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF015698),
|
||||
fontSize: 12.sp,
|
||||
@@ -84,7 +87,7 @@ class _WithdrawalPreviewState extends State<WithdrawalPreview> {
|
||||
text: TextSpan(
|
||||
children: [
|
||||
TextSpan(
|
||||
text: '${AppText.balance}: ',
|
||||
text: '${localizations.translate(AppText.balance)}: ',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.grey,
|
||||
fontSize: 12.sp,
|
||||
@@ -141,7 +144,7 @@ class _WithdrawalPreviewState extends State<WithdrawalPreview> {
|
||||
width: 12.w,
|
||||
),
|
||||
Text(
|
||||
AppText.withdrawTitle,
|
||||
localizations.translate(AppText.withdrawTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 17.sp,
|
||||
@@ -167,7 +170,7 @@ class _WithdrawalPreviewState extends State<WithdrawalPreview> {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
AppText.withdrawAmt,
|
||||
localizations.translate(AppText.withdrawAmt),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF535353),
|
||||
fontSize: 14.sp,
|
||||
@@ -222,7 +225,7 @@ class _WithdrawalPreviewState extends State<WithdrawalPreview> {
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppText.info2,
|
||||
localizations.translate(AppText.info2),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF015698),
|
||||
fontSize: 12.sp,
|
||||
@@ -242,7 +245,7 @@ class _WithdrawalPreviewState extends State<WithdrawalPreview> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.withdrawDetails,
|
||||
localizations.translate(AppText.withdrawDetails),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 15.sp,
|
||||
@@ -330,7 +333,7 @@ class _WithdrawalPreviewState extends State<WithdrawalPreview> {
|
||||
padding: const EdgeInsets.symmetric(vertical: 20.0),
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppText.submit,
|
||||
localizations.translate(AppText.submit),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.white,
|
||||
fontSize: 14.sp,
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:tanami_app/core/routes/route_name.dart';
|
||||
import 'package:tanami_app/core/routes/routes.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
|
||||
import '../../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../../core/utils/text_formatter/comma_input_text_formatter.dart';
|
||||
|
||||
class WithdrawalScreen extends StatefulWidget {
|
||||
@@ -19,13 +20,14 @@ class WithdrawalScreen extends StatefulWidget {
|
||||
class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
List titles = [
|
||||
'${AppText.accountHolderName} *',
|
||||
'${AppText.iban} *',
|
||||
AppText.beneficiaryAddress,
|
||||
AppText.bankName,
|
||||
AppText.branchAddress,
|
||||
AppText.SWIFTcode,
|
||||
'${localizations.translate(AppText.accountHolderName)} *',
|
||||
'${localizations.translate(AppText.iban)} *',
|
||||
localizations.translate(AppText.beneficiaryAddress),
|
||||
localizations.translate(AppText.bankName),
|
||||
localizations.translate(AppText.branchAddress),
|
||||
localizations.translate(AppText.SWIFTcode),
|
||||
];
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
@@ -35,7 +37,7 @@ class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
scrolledUnderElevation: 0.0,
|
||||
centerTitle: true,
|
||||
title: Text(
|
||||
AppText.withdrawalScreenTitle,
|
||||
localizations.translate(AppText.withdrawalScreenTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF272727),
|
||||
fontSize: 20.sp,
|
||||
@@ -53,7 +55,7 @@ class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
text: TextSpan(
|
||||
children: [
|
||||
TextSpan(
|
||||
text: '${AppText.balance}: ',
|
||||
text: '${localizations.translate(AppText.balance)}: ',
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.grey,
|
||||
fontSize: 12.sp,
|
||||
@@ -110,7 +112,7 @@ class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
width: 12.w,
|
||||
),
|
||||
Text(
|
||||
AppText.withdrawTitle,
|
||||
localizations.translate(AppText.withdrawTitle),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 17.sp,
|
||||
@@ -218,7 +220,8 @@ class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
AppText.processingFees,
|
||||
localizations
|
||||
.translate(AppText.processingFees),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF535353),
|
||||
fontSize: 14.sp,
|
||||
@@ -314,7 +317,7 @@ class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
AppText.withdrawDetails,
|
||||
localizations.translate(AppText.withdrawDetails),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.black,
|
||||
fontSize: 15.sp,
|
||||
@@ -325,7 +328,7 @@ class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
height: 3.h,
|
||||
),
|
||||
Text(
|
||||
AppText.required,
|
||||
localizations.translate(AppText.required),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: const Color(0xFF8D8D8D),
|
||||
fontSize: 14.sp,
|
||||
@@ -453,7 +456,7 @@ class _WithdrawalScreenState extends State<WithdrawalScreen> {
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
AppText.next,
|
||||
localizations.translate(AppText.next),
|
||||
style: GoogleFonts.dmSans(
|
||||
color: Colors.white,
|
||||
fontSize: 14.sp,
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
|
||||
import '../../../../countrySelection/presentation/bloc/choose_country_event.dart';
|
||||
import '../../../../countrySelection/presentation/bloc/choose_country_state.dart';
|
||||
@@ -16,6 +17,7 @@ class DepositPayMethodSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
final radioBloc = context.read<RadioBloc>();
|
||||
return BlocBuilder<RadioBloc, RadioState>(
|
||||
builder: (context, state) {
|
||||
@@ -25,7 +27,8 @@ class DepositPayMethodSection extends StatelessWidget {
|
||||
}
|
||||
|
||||
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
TextWidget().text15W700(AppText.choosePaymentMethodText,
|
||||
TextWidget().text15W700(
|
||||
localizations.translate(AppText.choosePaymentMethodText),
|
||||
clr: AppColor.plainBlack),
|
||||
const Gap(16),
|
||||
GestureDetector(
|
||||
@@ -83,7 +86,8 @@ class DepositPayMethodSection extends StatelessWidget {
|
||||
const Gap(5),
|
||||
SvgPicture.asset(AppImages.walletIcon),
|
||||
const Gap(5),
|
||||
TextWidget().text14W700(AppText.bankTransfer,
|
||||
TextWidget().text14W700(
|
||||
localizations.translate(AppText.bankTransfer),
|
||||
clr: AppColor.textLabelColor),
|
||||
],
|
||||
),
|
||||
@@ -93,7 +97,7 @@ class DepositPayMethodSection extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: TextWidget().text14W500(
|
||||
AppText.bankTransferText,
|
||||
localizations.translate(AppText.bankTransferText),
|
||||
clr: AppColor.textLabelColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
@@ -160,7 +164,8 @@ class DepositPayMethodSection extends StatelessWidget {
|
||||
const Gap(5),
|
||||
SvgPicture.asset(AppImages.applePayIcon),
|
||||
const Gap(5),
|
||||
TextWidget().text14W700(AppText.applePayText,
|
||||
TextWidget().text14W700(
|
||||
localizations.translate(AppText.applePayText),
|
||||
clr: AppColor.textLabelColor),
|
||||
],
|
||||
),
|
||||
@@ -170,7 +175,8 @@ class DepositPayMethodSection extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
child: TextWidget().text14W500(
|
||||
AppText.instantTransferFundsApplePayText,
|
||||
localizations
|
||||
.translate(AppText.instantTransferFundsApplePayText),
|
||||
clr: AppColor.textLabelColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
|
||||
@@ -9,6 +9,7 @@ import '../../../../../core/routes/routes.dart';
|
||||
import '../../../../../core/styles/app_color.dart';
|
||||
import '../../../../../core/styles/app_images.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class WalletListSection extends StatelessWidget {
|
||||
@@ -16,6 +17,50 @@ class WalletListSection extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
List data = [
|
||||
{
|
||||
'title': localizations.translate(AppText.deposit),
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '+ SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': localizations.translate(AppText.withdrawal),
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': true,
|
||||
},
|
||||
{
|
||||
'title': localizations.translate(AppText.investment),
|
||||
'subTitle': 'Name of Investment',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': localizations.translate(AppText.yield),
|
||||
'subTitle': 'Name of Investment',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '+ SAR 100,000',
|
||||
'subValue': '+ \$100,00',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': localizations.translate(AppText.refund),
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': true,
|
||||
},
|
||||
];
|
||||
|
||||
return Expanded(
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
@@ -75,7 +120,10 @@ class WalletListSection extends StatelessWidget {
|
||||
? Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W700(AppText.onHold,
|
||||
TextWidget().text14W700(
|
||||
localizations.translate(
|
||||
AppText.onHold,
|
||||
),
|
||||
clr: AppColor.onHoldTextColor),
|
||||
Gap(4.h),
|
||||
],
|
||||
@@ -154,46 +202,3 @@ Widget getIcon(String title) {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
List data = [
|
||||
{
|
||||
'title': AppText.deposit,
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '+ SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': AppText.withdrawal,
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': true,
|
||||
},
|
||||
{
|
||||
'title': AppText.investment,
|
||||
'subTitle': 'Name of Investment',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': AppText.yield,
|
||||
'subTitle': 'Name of Investment',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '+ SAR 100,000',
|
||||
'subValue': '+ \$100,00',
|
||||
'onHold': false,
|
||||
},
|
||||
{
|
||||
'title': AppText.refund,
|
||||
'subTitle': '',
|
||||
'dateTime': '10/04/2024 22:04',
|
||||
'value': '- SAR 100,000',
|
||||
'subValue': '',
|
||||
'onHold': true,
|
||||
},
|
||||
];
|
||||
|
||||
@@ -7,13 +7,17 @@ import '../../../../core/routes/routes.dart';
|
||||
import '../../../../core/styles/app_color.dart';
|
||||
import '../../../../core/styles/app_text.dart';
|
||||
import '../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../core/utils/secure/secure_storage_service.dart';
|
||||
import '../../../../shared/components/bloc/language/lng_bloc.dart';
|
||||
import '../../../../shared/components/bloc/language/lng_event.dart';
|
||||
import '../../../../shared/components/button_widget.dart';
|
||||
import '../../../../shared/components/text_widget.dart';
|
||||
import '../bloc/choose_language_bloc.dart';
|
||||
|
||||
Widget bottomSection(BuildContext context) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
final radioBloc = context.read<ChooseLanguageBloc>();
|
||||
SecureStorageService secureStorageService = SecureStorageService();
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
@@ -26,13 +30,16 @@ Widget bottomSection(BuildContext context) {
|
||||
height: 56.h,
|
||||
child: ButtonWidget().elevatedBtn(
|
||||
txtClr: AppColor.plainWhite,
|
||||
function: () {
|
||||
var newLocale =
|
||||
context.read<LocalizationBloc>().state.locale.languageCode ==
|
||||
'en'
|
||||
? const Locale('ar')
|
||||
: const Locale('en');
|
||||
function: () async {
|
||||
var newLocale = radioBloc.selectedCountry == 1
|
||||
? const Locale('ar')
|
||||
: const Locale('en');
|
||||
context.read<LocalizationBloc>().add(ChangeLanguage(newLocale));
|
||||
if (radioBloc.selectedCountry == 1) {
|
||||
await secureStorageService.write('languageSelected', "ar");
|
||||
} else {
|
||||
await secureStorageService.write('languageSelected', "en");
|
||||
}
|
||||
goRouter.pop();
|
||||
},
|
||||
text: localizations.translate(AppText.submitText),
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../core/utils/secure/secure_storage_service.dart';
|
||||
import '../bloc/choose_language_bloc.dart';
|
||||
import '../bloc/choose_language_event.dart';
|
||||
import '../bloc/choose_language_state.dart';
|
||||
@@ -13,10 +14,14 @@ class CountrySelectionList extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
SecureStorageService secureStorageService = SecureStorageService();
|
||||
|
||||
final radioBloc = context.read<ChooseLanguageBloc>();
|
||||
_initializeLanguageSelection(radioBloc, secureStorageService);
|
||||
return BlocBuilder<ChooseLanguageBloc, ChooseLanguageState>(
|
||||
builder: (context, state) {
|
||||
int selectedIndex = 0;
|
||||
|
||||
if (state is ChooseLanguageSelectionChanged) {
|
||||
selectedIndex = state.selectedIndex;
|
||||
}
|
||||
@@ -44,6 +49,20 @@ class CountrySelectionList extends StatelessWidget {
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
void _initializeLanguageSelection(ChooseLanguageBloc radioBloc,
|
||||
SecureStorageService secureStorageService) async {
|
||||
String languageSelected =
|
||||
(await secureStorageService.read("languageSelected")) ?? "";
|
||||
|
||||
if (languageSelected.isEmpty) {
|
||||
radioBloc.add(const ChooseLanguageSelected(0));
|
||||
} else if (languageSelected == "en") {
|
||||
radioBloc.add(const ChooseLanguageSelected(0));
|
||||
} else {
|
||||
radioBloc.add(const ChooseLanguageSelected(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<String> languageList = [
|
||||
|
||||
@@ -8,11 +8,13 @@ import 'package:local_auth/local_auth.dart';
|
||||
import 'core/routes/routes.dart';
|
||||
import 'core/utils/connectivity/network_connectivity.dart';
|
||||
import 'core/utils/language/localizations_delegate.dart';
|
||||
import 'core/utils/secure/secure_storage_service.dart';
|
||||
import 'features/biometric/presentation/bloc/biometric_bloc.dart';
|
||||
import 'features/biometric/presentation/bloc/biometric_event.dart';
|
||||
import 'features/countrySelection/presentation/bloc/choose_country_bloc.dart';
|
||||
import 'shared/components/bloc/bottom_nav_bar/bottom_navigation_bloc.dart';
|
||||
import 'shared/components/bloc/language/lng_bloc.dart';
|
||||
import 'shared/components/bloc/language/lng_event.dart';
|
||||
import 'shared/components/bloc/language/lng_state.dart';
|
||||
|
||||
/* CREATED BY - JAYESH JAIN
|
||||
@@ -34,15 +36,15 @@ Future<void> main() async {
|
||||
DeviceOrientation.portraitUp,
|
||||
]).then((value) => runApp(const MyApp()
|
||||
// StatsFl(
|
||||
// isEnabled: true, //Toggle on/off
|
||||
// width: 200, //Set size
|
||||
// height: 50, //
|
||||
// maxFps: 60, // Support custom FPS target (default is 60)
|
||||
// showText: true, // Hide text label
|
||||
// sampleTime: .5, //Interval between fps calculations, in seconds.
|
||||
// totalTime: 15, //Total length of timeline, in seconds.
|
||||
// align: Alignment.center, //Alignment of statsbox
|
||||
// child: const MyApp())
|
||||
// isEnabled: true, //Toggle on/off
|
||||
// width: 200, //Set size
|
||||
// height: 50, //
|
||||
// maxFps: 60, // Support custom FPS target (default is 60)
|
||||
// showText: true, // Hide text label
|
||||
// sampleTime: .5, //Interval between fps calculations, in seconds.
|
||||
// totalTime: 15, //Total length of timeline, in seconds.
|
||||
// align: Alignment.center, //Alignment of statsbox
|
||||
// child: const MyApp()
|
||||
));
|
||||
}
|
||||
|
||||
@@ -54,13 +56,15 @@ class MyApp extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
||||
SecureStorageService secureStorageService = SecureStorageService();
|
||||
final NetworkConnectivity _networkConnectivity =
|
||||
NetworkConnectivity(onStatusChange: (_) {});
|
||||
String languageSelected = "";
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
WidgetsBinding.instance.addObserver(this);
|
||||
|
||||
changeLanguage();
|
||||
// Initialize the NetworkConnectivity instance.
|
||||
_networkConnectivity.initialize();
|
||||
}
|
||||
@@ -72,10 +76,18 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
Future changeLanguage() async {
|
||||
languageSelected =
|
||||
(await secureStorageService.read("languageSelected")) ?? "";
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MultiBlocProvider(
|
||||
providers: [
|
||||
BlocProvider(
|
||||
create: (_) => LocalizationBloc(),
|
||||
),
|
||||
BlocProvider(
|
||||
create: (context) => RadioBloc(),
|
||||
),
|
||||
@@ -86,14 +98,29 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
||||
create: (_) =>
|
||||
BiometricBloc(LocalAuthentication())..add(CheckBiometricEvent()),
|
||||
),
|
||||
BlocProvider(
|
||||
create: (_) => LocalizationBloc(),
|
||||
),
|
||||
],
|
||||
child: ScreenUtilInit(
|
||||
builder: (BuildContext context, Widget? child) =>
|
||||
BlocBuilder<LocalizationBloc, LocalizationState>(
|
||||
builder: (context, state) {
|
||||
changeLanguage().then(
|
||||
(value) {
|
||||
if (languageSelected.isEmpty) {
|
||||
context
|
||||
.read<LocalizationBloc>()
|
||||
.add(const ChangeLanguage(Locale('en')));
|
||||
} else if (languageSelected == "en") {
|
||||
context
|
||||
.read<LocalizationBloc>()
|
||||
.add(const ChangeLanguage(Locale('en')));
|
||||
} else {
|
||||
context
|
||||
.read<LocalizationBloc>()
|
||||
.add(const ChangeLanguage(Locale('ar')));
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
return MaterialApp.router(
|
||||
title: 'Tanami Capital',
|
||||
locale: state.locale,
|
||||
|
||||
@@ -4,11 +4,13 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
|
||||
import '../../core/utils/language/localizations_delegate.dart';
|
||||
import 'bloc/bottom_nav_bar/bottom_navigation_bloc.dart';
|
||||
import 'bloc/bottom_nav_bar/bottom_navigation_event.dart';
|
||||
|
||||
Widget bottomnavigationbar(
|
||||
BuildContext context, selectedIndex, PageController pageController) {
|
||||
var localizations = AppLocalizations.of(context);
|
||||
return BottomNavigationBar(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
type: BottomNavigationBarType.fixed,
|
||||
@@ -43,7 +45,7 @@ Widget bottomnavigationbar(
|
||||
height: 30.h,
|
||||
width: 30.w,
|
||||
),
|
||||
label: 'Wallet',
|
||||
label: localizations.translate('Wallet'),
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
@@ -56,7 +58,7 @@ Widget bottomnavigationbar(
|
||||
height: 30.h,
|
||||
width: 30.w,
|
||||
),
|
||||
label: 'Portfolio',
|
||||
label: localizations.translate('Portfolio'),
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
@@ -69,7 +71,7 @@ Widget bottomnavigationbar(
|
||||
height: 28.h,
|
||||
width: 28.w,
|
||||
),
|
||||
label: 'Invest',
|
||||
label: localizations.translate('Invest'),
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
@@ -82,7 +84,7 @@ Widget bottomnavigationbar(
|
||||
height: 30.h,
|
||||
width: 30.w,
|
||||
),
|
||||
label: 'Academy',
|
||||
label: localizations.translate('Academy'),
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
@@ -95,7 +97,7 @@ Widget bottomnavigationbar(
|
||||
height: 30.h,
|
||||
width: 30.w,
|
||||
),
|
||||
label: 'Settings',
|
||||
label: localizations.translate('Settings'),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user