@@ -245,9 +245,11 @@ final goRouter = GoRouter(
|
||||
),
|
||||
GoRoute(
|
||||
name: RouteName.investDetailScreen,
|
||||
path: RouteName.investDetailScreen,
|
||||
path: "${RouteName.investDetailScreen}/:type",
|
||||
builder: (context, state) {
|
||||
return const InvestDetailsScreen();
|
||||
return InvestDetailsScreen(
|
||||
type: state.pathParameters["type"]!,
|
||||
);
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
|
||||
@@ -257,7 +257,10 @@ class AppText {
|
||||
static const String fundedText = "funded";
|
||||
static const String sponsorNameText = "Sponsor name";
|
||||
static const String estimatedReturnText = "Estimated return";
|
||||
static const String originalEstimatedReturnText = "Original estimated return";
|
||||
static const String actualEstimatedReturnText = "Actual return";
|
||||
static const String holdingPeriodText = "Holding period";
|
||||
static const String payoutDateText = "Payout Date";
|
||||
static const String minimumInvestmentText = "Minimum investment";
|
||||
static const String keyMeritsIOfnvestmentText = "Key Merits of Investment";
|
||||
static const String investmentDetailsText = "Investment details";
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
|
||||
import '../../../../../core/styles/app_color.dart';
|
||||
import '../widgets/academy_detail_section.dart';
|
||||
import '../widgets/academy_video_section.dart';
|
||||
|
||||
@@ -10,7 +12,7 @@ class AcademyDetailsLayout extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 20.0),
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tanami_app/features/MainScreens/Academy/presentation/widgets/academy_card.dart';
|
||||
|
||||
import '../../../../../core/styles/app_color.dart';
|
||||
|
||||
class AcademyLayout extends StatelessWidget {
|
||||
const AcademyLayout({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: ListView.builder(
|
||||
itemCount: data.length,
|
||||
itemBuilder: (context, index) {
|
||||
|
||||
@@ -10,7 +10,8 @@ import '../widgets/invest_included_documents_section.dart';
|
||||
import '../widgets/key_investment_section.dart';
|
||||
|
||||
class InvestDetailsLayout extends StatelessWidget {
|
||||
const InvestDetailsLayout({super.key});
|
||||
final String type;
|
||||
const InvestDetailsLayout({super.key, required this.type});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -37,7 +38,9 @@ class InvestDetailsLayout extends StatelessWidget {
|
||||
child: Column(
|
||||
children: [
|
||||
InvestDetailCarouselView(),
|
||||
const InvestDetailDetailsSection(),
|
||||
InvestDetailDetailsSection(
|
||||
type: type,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -12,24 +12,27 @@ import '../../../Portfolio/presentation/bloc/carousel/carousel_bloc.dart';
|
||||
import 'invest_details_layout.dart';
|
||||
|
||||
class InvestDetailsScreen extends StatelessWidget {
|
||||
const InvestDetailsScreen({super.key});
|
||||
final String type;
|
||||
const InvestDetailsScreen({super.key, required this.type});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
bottomNavigationBar: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 18, vertical: 26),
|
||||
width: 1.sw,
|
||||
height: 105.h,
|
||||
child: ButtonWidget().elevatedBtn(
|
||||
text: AppText.investText,
|
||||
clr: AppColor.primaryColor2,
|
||||
function: () {
|
||||
goRouter.pushNamed(RouteName.investPaymentScreen);
|
||||
},
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: type == "closed"
|
||||
? null
|
||||
: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 18, vertical: 26),
|
||||
width: 1.sw,
|
||||
height: 105.h,
|
||||
child: ButtonWidget().elevatedBtn(
|
||||
text: AppText.investText,
|
||||
clr: AppColor.primaryColor2,
|
||||
function: () {
|
||||
goRouter.pushNamed(RouteName.investPaymentScreen);
|
||||
},
|
||||
),
|
||||
),
|
||||
appBar: const AppBarWidget(
|
||||
height: 45,
|
||||
titleTxt: "",
|
||||
@@ -41,7 +44,9 @@ class InvestDetailsScreen extends StatelessWidget {
|
||||
create: (context) => CarouselBloc(),
|
||||
),
|
||||
],
|
||||
child: const InvestDetailsLayout(),
|
||||
child: InvestDetailsLayout(
|
||||
type: type,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import 'package:tanami_app/features/MainScreens/Invest/presentation/widgets/kyc_
|
||||
import '../bloc/tab_bloc.dart';
|
||||
import '../bloc/tab_event.dart';
|
||||
import '../bloc/tab_state.dart';
|
||||
import '../widgets/invest_closed_details_section.dart';
|
||||
import '../widgets/invest_details_section.dart';
|
||||
import '../widgets/invest_image_carousel.dart';
|
||||
|
||||
@@ -37,7 +38,7 @@ class InvestLayout extends StatelessWidget {
|
||||
fontWeight: FontWeight.normal,
|
||||
fontSize: 14.0,
|
||||
),
|
||||
overlayColor: MaterialStateProperty.all(Colors.transparent),
|
||||
overlayColor: WidgetStateProperty.all(Colors.transparent),
|
||||
labelColor: AppColor.plainBlack,
|
||||
unselectedLabelColor: AppColor.charcoalColor,
|
||||
indicatorColor: AppColor.plainBlack,
|
||||
@@ -84,7 +85,8 @@ class AvailableItemsScreen extends StatelessWidget {
|
||||
child: kycCard())
|
||||
: GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.investDetailScreen);
|
||||
goRouter.pushNamed(RouteName.investDetailScreen,
|
||||
pathParameters: {"type": "available"});
|
||||
},
|
||||
child: Container(
|
||||
margin: const EdgeInsets.symmetric(
|
||||
@@ -143,7 +145,8 @@ class ClosedItemsScreen extends StatelessWidget {
|
||||
child: kycCard())
|
||||
: GestureDetector(
|
||||
onTap: () {
|
||||
goRouter.pushNamed(RouteName.investDetailScreen);
|
||||
goRouter.pushNamed(RouteName.investDetailScreen,
|
||||
pathParameters: {"type": "closed"});
|
||||
},
|
||||
child: Container(
|
||||
margin: const EdgeInsets.symmetric(
|
||||
@@ -166,7 +169,7 @@ class ClosedItemsScreen extends StatelessWidget {
|
||||
child: Column(
|
||||
children: [
|
||||
InvestCarouselView(),
|
||||
const InvestDetailsSection(),
|
||||
const InvestClosedDetailsSection(),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../../../../core/styles/app_color.dart';
|
||||
import '../../widgets/payment/confirm_invest_bottom_section.dart';
|
||||
import '../../widgets/payment/confirm_invest_top_section.dart';
|
||||
|
||||
@@ -9,7 +10,7 @@ class ConfirmInvestmentLayout extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
bottomNavigationBar: ConfirmInvestBottomSection(),
|
||||
body: Padding(
|
||||
padding: EdgeInsets.all(16.0),
|
||||
|
||||
@@ -0,0 +1,235 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
|
||||
import '../../../../../core/styles/app_images.dart';
|
||||
import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class InvestClosedDetailsSection extends StatelessWidget {
|
||||
const InvestClosedDetailsSection({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
children: [
|
||||
Container(
|
||||
color: AppColor.plainWhite,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
left: 20.0,
|
||||
right: 20,
|
||||
top: 10,
|
||||
bottom: 20,
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
TextWidget().text17W700(
|
||||
'Multi Family Residental',
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
Container(
|
||||
height: 28,
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 12, vertical: 6),
|
||||
decoration: ShapeDecoration(
|
||||
color: const Color(0xFFE4F5E9),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(4)),
|
||||
),
|
||||
child: Center(
|
||||
child: TextWidget().text12W700(
|
||||
"Real estate",
|
||||
clr: AppColor.selectedItemColor,
|
||||
)),
|
||||
)
|
||||
],
|
||||
),
|
||||
Gap(10.h),
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 15.0, vertical: 10.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
border: Border.all(color: const Color(0xFFE4F5E9)),
|
||||
borderRadius: BorderRadius.circular(14.0),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Image.asset(
|
||||
AppImages.portfolioClock,
|
||||
height: 15.h,
|
||||
),
|
||||
Gap(
|
||||
5.w,
|
||||
),
|
||||
TextWidget().text12W700(
|
||||
"${AppText.closingDateText}: ",
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
TextWidget().text12W500(
|
||||
'Jul 10 2025',
|
||||
clr: AppColor.plainBlack,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Gap(
|
||||
10.h,
|
||||
),
|
||||
TextWidget()
|
||||
.text22W900("SAR 1,478,000", clr: AppColor.investTextColor),
|
||||
const Gap(8.0),
|
||||
LinearProgressIndicator(
|
||||
value: 1,
|
||||
borderRadius: BorderRadius.circular(2),
|
||||
minHeight: 8.0,
|
||||
backgroundColor: AppColor.txtBorderColor,
|
||||
valueColor: const AlwaysStoppedAnimation<Color>(
|
||||
AppColor.investTextColor),
|
||||
),
|
||||
const Gap(8.0),
|
||||
TextWidget().text11W700("100% ${AppText.fundedText}",
|
||||
clr: AppColor.portoflioCardTextColor),
|
||||
const Gap(8.0),
|
||||
TextWidget().text14W400(
|
||||
'Forem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vulputate libero et velit interdum, ac aliquet odio mattis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur tempus urna at turpis condimentum lobortis.',
|
||||
clr: Colors.grey,
|
||||
txtAlign: TextAlign.start,
|
||||
maxLine: 2,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 12.0, right: 12, bottom: 12.0),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: const Color(0xFFE4F5E9),
|
||||
borderRadius: BorderRadius.circular(22)),
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 20.0, vertical: 16.0),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.sponsorNameText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'Silverlake',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
)
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 8.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 200.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.originalEstimatedReturnText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'20.0%',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 8.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.actualEstimatedReturnText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'22.5%',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 8.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.holdingPeriodText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'24 Months',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 8.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
"${AppText.payoutDateText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'August 1, 2027',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,8 @@ import '../../../../../core/styles/app_text.dart';
|
||||
import '../../../../../shared/components/text_widget.dart';
|
||||
|
||||
class InvestDetailDetailsSection extends StatelessWidget {
|
||||
const InvestDetailDetailsSection({super.key});
|
||||
final String type;
|
||||
const InvestDetailDetailsSection({super.key, required this.type});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -31,7 +32,7 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
.text22W900("SAR 1,478,000", clr: AppColor.investTextColor),
|
||||
const Gap(8.0),
|
||||
LinearProgressIndicator(
|
||||
value: 0.6,
|
||||
value: type == "closed" ? 1 : 0.6,
|
||||
borderRadius: BorderRadius.circular(2),
|
||||
minHeight: 8.0,
|
||||
backgroundColor: AppColor.txtBorderColor,
|
||||
@@ -39,7 +40,10 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
AppColor.investTextColor),
|
||||
),
|
||||
const Gap(8.0),
|
||||
TextWidget().text11W700("60% ${AppText.fundedText}",
|
||||
TextWidget().text11W700(
|
||||
type == "closed"
|
||||
? "100% ${AppText.fundedText}"
|
||||
: "60% ${AppText.fundedText}",
|
||||
clr: AppColor.portoflioCardTextColor),
|
||||
const Gap(8.0),
|
||||
TextWidget().text14W400(
|
||||
@@ -86,27 +90,78 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
height: 8.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.estimatedReturnText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
type == "closed"
|
||||
? Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 200.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.originalEstimatedReturnText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'20.0%',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
)
|
||||
: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.estimatedReturnText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'20.0%',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'20.0%',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
),
|
||||
type == "closed"
|
||||
? Column(
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 8.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 150.w,
|
||||
child: TextWidget().text14W500(
|
||||
"${AppText.actualEstimatedReturnText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'22.5%',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 8.h,
|
||||
),
|
||||
],
|
||||
)
|
||||
: const SizedBox(),
|
||||
SizedBox(
|
||||
height: 8.h,
|
||||
height: type == "closed" ? 0 : 8.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
@@ -130,22 +185,39 @@ class InvestDetailDetailsSection extends StatelessWidget {
|
||||
SizedBox(
|
||||
height: 8.h,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
"${AppText.minimumInvestmentText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'SAR 1,000',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
)
|
||||
type == "closed"
|
||||
? Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
"${AppText.payoutDateText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'August 1, 2027',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
)
|
||||
: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextWidget().text14W500(
|
||||
"${AppText.minimumInvestmentText}:",
|
||||
clr: AppColor.portoflioCardTextColor,
|
||||
txtAlign: TextAlign.start,
|
||||
),
|
||||
TextWidget().text14W700(
|
||||
'SAR 1,000',
|
||||
clr: AppColor.plainBlack,
|
||||
txtAlign: TextAlign.end,
|
||||
),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -16,7 +16,7 @@ class PortfolioLayout extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: CustomScrollView(
|
||||
slivers: [
|
||||
SliverAppBar(
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/features/MainScreens/Settings/presentation/widgets/support_settings_section.dart';
|
||||
|
||||
import '../widgets/general_settings_section.dart';
|
||||
@@ -13,7 +14,7 @@ class SettingsLayout extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
|
||||
@@ -18,7 +18,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: AppBar(
|
||||
// backgroundColor: Colors.white,
|
||||
backgroundColor: Colors.white,
|
||||
elevation: 0,
|
||||
scrolledUnderElevation: 0,
|
||||
automaticallyImplyLeading: false,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../../core/styles/app_color.dart';
|
||||
import '../widgets/change_password_bottom_section.dart';
|
||||
import '../widgets/change_password_form.dart';
|
||||
|
||||
@@ -9,9 +10,8 @@ class ChangePasswordLayout extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
bottomNavigationBar: RestorePasswordBottomSection(),
|
||||
body: RestorePasswordForm(),
|
||||
);
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
bottomNavigationBar: RestorePasswordBottomSection(),
|
||||
body: RestorePasswordForm());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,8 @@ class ChooseCountryLayout extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(backgroundColor: Colors.white,
|
||||
return Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
bottomNavigationBar: Container(
|
||||
margin: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
|
||||
import '../../../../core/styles/app_color.dart';
|
||||
import '../widgets/restore_password_bottom_section.dart';
|
||||
import '../widgets/restore_password_form.dart';
|
||||
import '../widgets/restore_password_top_section.dart';
|
||||
@@ -11,15 +12,14 @@ class RestorePasswordLayout extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
body: ListView(
|
||||
children: const [
|
||||
RestorePasswordTopSection(),
|
||||
RestorePasswordForm(),
|
||||
Gap(150),
|
||||
RestorePasswordBottomSection(),
|
||||
],
|
||||
),
|
||||
);
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: ListView(
|
||||
children: const [
|
||||
RestorePasswordTopSection(),
|
||||
RestorePasswordForm(),
|
||||
Gap(150),
|
||||
RestorePasswordBottomSection(),
|
||||
],
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/features/forgotPassword/presentation/widgets/restore_password_phone_verification_bottom_section.dart';
|
||||
import 'package:tanami_app/features/forgotPassword/presentation/widgets/restore_password_phone_verification_top_section.dart';
|
||||
|
||||
import '../../../../core/styles/app_color.dart';
|
||||
import '../widgets/restore_password_phone_verification_form.dart';
|
||||
|
||||
class RestorePasswordPhoneVerificationLayout extends StatelessWidget {
|
||||
@@ -11,15 +12,14 @@ class RestorePasswordPhoneVerificationLayout extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
body: ListView(
|
||||
children: const [
|
||||
RestorePasswordPhoneVerificationTopSection(),
|
||||
RestorePasswordPhoneVerificationForm(),
|
||||
Gap(150),
|
||||
RestorePasswordPhoneVerificationBottomSection(),
|
||||
],
|
||||
),
|
||||
);
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
body: ListView(
|
||||
children: const [
|
||||
RestorePasswordPhoneVerificationTopSection(),
|
||||
RestorePasswordPhoneVerificationForm(),
|
||||
Gap(150),
|
||||
RestorePasswordPhoneVerificationBottomSection(),
|
||||
],
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,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/appbar_widget.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../widgets/bottom_section.dart';
|
||||
import '../widgets/language_change_list.dart';
|
||||
|
||||
@@ -15,7 +16,7 @@ class LanguageChangeLayout extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
bottomNavigationBar: bottomSection(),
|
||||
appBar: const AppBarWidget(
|
||||
height: 75,
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/features/login/presentation/widgets/login_form.dart';
|
||||
|
||||
import '../../../../core/styles/app_color.dart';
|
||||
import '../widgets/bottom_section.dart';
|
||||
import '../widgets/top_section.dart';
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import 'bloc/bottom_nav_bar/bottom_navigation_event.dart';
|
||||
Widget bottomnavigationbar(
|
||||
BuildContext context, selectedIndex, PageController pageController) {
|
||||
return BottomNavigationBar(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
type: BottomNavigationBarType.fixed,
|
||||
showUnselectedLabels: true,
|
||||
selectedItemColor: AppColor.selectedItemColor,
|
||||
|
||||
Reference in New Issue
Block a user