Files
Tanami_App/lib/features/faq/presentation/pages/faq_screen.dart
2024-07-25 19:19:25 +05:30

516 lines
21 KiB
Dart

import 'package:expansion_tile_group/expansion_tile_group.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:gap/gap.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/appbar_widget.dart';
class FAQScreen extends StatefulWidget {
const FAQScreen({super.key});
@override
State<FAQScreen> createState() => _AccountappState();
}
class _AccountappState extends State<FAQScreen> {
int gettingStartedselectedTile = 0;
int investmentSelectedTile = 0;
int knowledgeSelectedTile = 0;
int complianceSelectedTile = 0;
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
List<Map<String, String>> gettingStartedList = [
{
"title": localizations.translate(AppText.getStartedTitle1),
"answer": localizations.translate(AppText.geStartedDesc1),
},
{
"title": localizations.translate(AppText.getStartedTitle2),
"answer": localizations.translate(AppText.geStartedDesc2),
},
{
"title": localizations.translate(AppText.getStartedTitle3),
"answer": localizations.translate(AppText.geStartedDesc3),
}
];
List<Map<String, String>> investmentList = [
{
"title": localizations.translate(AppText.investmentTitle1),
"answer": localizations.translate(AppText.investmentDesc1),
},
{
"title": localizations.translate(AppText.investmentTitle2),
"answer": localizations.translate(AppText.investmentDesc2),
},
{
"title": localizations.translate(AppText.investmentTitle3),
"answer": localizations.translate(AppText.investmentDesc3),
},
{
"title": localizations.translate(AppText.investmentTitle4),
"answer": localizations.translate(AppText.investmentDesc4),
},
{
"title": localizations.translate(AppText.investmentTitle5),
"answer": localizations.translate(AppText.investmentDesc5),
},
{
"title": localizations.translate(AppText.investmentTitle6),
"answer": localizations.translate(AppText.investmentDesc6),
},
{
"title": localizations.translate(AppText.investmentTitle7),
"answer": localizations.translate(AppText.investmentDesc7),
},
{
"title": localizations.translate(AppText.investmentTitle8),
"answer": localizations.translate(AppText.investmentDesc8),
},
{
"title": localizations.translate(AppText.investmentTitle9),
"answer": localizations.translate(AppText.investmentDesc9),
},
{
"title": localizations.translate(AppText.investmentTitle10),
"answer": localizations.translate(AppText.investmentDesc10),
},
{
"title": localizations.translate(AppText.investmentTitle11),
"answer": localizations.translate(AppText.investmentDesc11),
},
{
"title": localizations.translate(AppText.investmentTitle12),
"answer": localizations.translate(AppText.investmentDesc12),
},
{
"title": localizations.translate(AppText.investmentTitle13),
"answer": localizations.translate(AppText.investmentDesc13),
}
];
List<Map<String, String>> knowledgeAndEducationList = [
{
"title": localizations.translate(AppText.knowledgeTitle1),
"answer": localizations.translate(AppText.knowledgeDesc1),
},
{
"title": localizations.translate(AppText.knowledgeTitle2),
"answer": localizations.translate(AppText.knowledgeDesc2),
},
{
"title": localizations.translate(AppText.knowledgeTitle3),
"answer": localizations.translate(AppText.knowledgeDesc3),
}
];
List<Map<String, String>> complianceSecurityAndSupportList = [
{
"title": localizations.translate(AppText.securityTitle1),
"answer": localizations.translate(AppText.securityDesc1),
},
{
"title": localizations.translate(AppText.securityTitle2),
"answer": localizations.translate(AppText.securityDesc2),
},
{
"title": localizations.translate(AppText.securityTitle3),
"answer": localizations.translate(AppText.securityDesc3),
},
{
"title": localizations.translate(AppText.securityTitle4),
"answer": localizations.translate(AppText.securityDesc4),
},
{
"title": localizations.translate(AppText.securityTitle5),
"answer": localizations.translate(AppText.securityDesc5),
}
];
return Scaffold(
backgroundColor: AppColor.plainWhite,
appBar: AppBarWidget(
height: 75,
titleTxt: localizations.translate(AppText.faqText),
),
body: SafeArea(
child: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(left: 16.w, top: 23.h),
child: Text(
localizations.translate(AppText.gettingStarted),
style: GoogleFonts.dmSans(
fontSize: 18.sp,
color: AppColor.charcoalColor,
fontWeight: FontWeight.w600),
),
),
Gap(17.h),
Container(
margin: const EdgeInsets.only(
bottom: 20,
top: 15,
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: ExpansionTileGroup(
spaceBetweenItem: 23,
toggleType: ToggleType.expandOnlyCurrent,
children: List.generate(
gettingStartedList.length,
(index) => ExpansionTileItem(
isHasBottomBorder: true,
isHasLeftBorder: true,
isHasRightBorder: true,
boxShadow: [
BoxShadow(
color: AppColor.plainBlack.withOpacity(0.15),
spreadRadius: 2,
blurRadius: 10,
offset:
const Offset(0, 3), // changes position of shadow
),
],
isHasTopBorder: true,
collapsedBackgroundColor: AppColor.portfolioCardBgColor,
borderRadius: BorderRadius.circular(10),
onExpansionChanged: (bool expanding) {
if (expanding) {
setState(() {
gettingStartedselectedTile = index;
});
} else {
setState(() {
gettingStartedselectedTile = -1;
});
}
},
backgroundColor: AppColor.portfolioCardBgColor,
childrenPadding: EdgeInsets.only(
left: 0.w, right: 0.w, bottom: 8.h, top: 10.h),
initiallyExpanded: index == gettingStartedselectedTile,
isHasTrailing: false,
title: Text(
gettingStartedList[index]['title']!,
maxLines: 3,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.otpTextColor,
fontWeight: FontWeight.w600),
),
children: <Widget>[
Container(
margin: const EdgeInsets.symmetric(horizontal: 5),
width: 1.sw,
// height: 109.h,
decoration: BoxDecoration(
color: AppColor.plainWhite,
borderRadius: BorderRadius.circular(10.r),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 12.w, vertical: 10.h),
child: Text(
gettingStartedList[index]['answer']!,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.investPaymentTextColor,
),
),
),
)
],
),
),
),
),
),
Padding(
padding: EdgeInsets.only(left: 16.w, top: 23.h),
child: Text(
localizations.translate(AppText.investment),
style: GoogleFonts.dmSans(
fontSize: 18.sp,
color: AppColor.charcoalColor,
fontWeight: FontWeight.w600),
),
),
Gap(17.h),
Container(
margin: const EdgeInsets.only(
bottom: 20,
top: 15,
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: ExpansionTileGroup(
spaceBetweenItem: 23,
toggleType: ToggleType.expandOnlyCurrent,
children: List.generate(
investmentList.length,
(index) => ExpansionTileItem(
isHasBottomBorder: true,
isHasLeftBorder: true,
isHasRightBorder: true,
boxShadow: [
BoxShadow(
color: AppColor.plainBlack.withOpacity(0.15),
spreadRadius: 2,
blurRadius: 10,
offset:
const Offset(0, 3), // changes position of shadow
),
],
isHasTopBorder: true,
collapsedBackgroundColor: AppColor.portfolioCardBgColor,
borderRadius: BorderRadius.circular(10),
onExpansionChanged: (bool expanding) {
if (expanding) {
setState(() {
investmentSelectedTile = index;
});
} else {
setState(() {
investmentSelectedTile = -1;
});
}
},
backgroundColor: AppColor.portfolioCardBgColor,
childrenPadding: EdgeInsets.only(
left: 0.w, right: 0.w, bottom: 8.h, top: 10.h),
initiallyExpanded: index == investmentSelectedTile,
isHasTrailing: false,
title: Text(
investmentList[index]['title']!,
maxLines: 3,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.otpTextColor,
fontWeight: FontWeight.w600),
),
children: <Widget>[
Container(
margin: const EdgeInsets.symmetric(horizontal: 5),
width: 1.sw,
// height: 109.h,
decoration: BoxDecoration(
color: AppColor.plainWhite,
borderRadius: BorderRadius.circular(10.r),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 12.w, vertical: 10.h),
child: Text(
investmentList[index]['answer']!,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.investPaymentTextColor,
),
),
),
)
],
),
),
),
),
),
Padding(
padding: EdgeInsets.only(left: 16.w, top: 23.h),
child: Text(
localizations.translate(AppText.knowledgeAndEducation),
style: GoogleFonts.dmSans(
fontSize: 18.sp,
color: AppColor.charcoalColor,
fontWeight: FontWeight.w600),
),
),
Gap(17.h),
Container(
margin: const EdgeInsets.only(
bottom: 20,
top: 15,
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: ExpansionTileGroup(
spaceBetweenItem: 23,
toggleType: ToggleType.expandOnlyCurrent,
children: List.generate(
knowledgeAndEducationList.length,
(index) => ExpansionTileItem(
isHasBottomBorder: true,
isHasLeftBorder: true,
isHasRightBorder: true,
boxShadow: [
BoxShadow(
color: AppColor.plainBlack.withOpacity(0.15),
spreadRadius: 2,
blurRadius: 10,
offset:
const Offset(0, 3), // changes position of shadow
),
],
isHasTopBorder: true,
collapsedBackgroundColor: AppColor.portfolioCardBgColor,
borderRadius: BorderRadius.circular(10),
onExpansionChanged: (bool expanding) {
if (expanding) {
setState(() {
knowledgeSelectedTile = index;
});
} else {
setState(() {
knowledgeSelectedTile = -1;
});
}
},
backgroundColor: AppColor.portfolioCardBgColor,
childrenPadding: EdgeInsets.only(
left: 0.w, right: 0.w, bottom: 8.h, top: 10.h),
initiallyExpanded: index == knowledgeSelectedTile,
isHasTrailing: false,
title: Text(
knowledgeAndEducationList[index]['title']!,
maxLines: 3,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.otpTextColor,
fontWeight: FontWeight.w600),
),
children: <Widget>[
Container(
margin: const EdgeInsets.symmetric(horizontal: 5),
width: 1.sw,
// height: 109.h,
decoration: BoxDecoration(
color: AppColor.plainWhite,
borderRadius: BorderRadius.circular(10.r),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 12.w, vertical: 10.h),
child: Text(
knowledgeAndEducationList[index]['answer']!,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.investPaymentTextColor,
),
),
),
)
],
),
),
),
),
),
Padding(
padding: EdgeInsets.only(left: 16.w, top: 23.h),
child: Text(
localizations.translate(AppText.complianceSecurityAndSupport),
style: GoogleFonts.dmSans(
fontSize: 18.sp,
color: AppColor.charcoalColor,
fontWeight: FontWeight.w600),
),
),
Gap(17.h),
Container(
margin: const EdgeInsets.only(
bottom: 20,
top: 15,
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: ExpansionTileGroup(
spaceBetweenItem: 23,
toggleType: ToggleType.expandOnlyCurrent,
children: List.generate(
complianceSecurityAndSupportList.length,
(index) => ExpansionTileItem(
isHasBottomBorder: true,
isHasLeftBorder: true,
isHasRightBorder: true,
boxShadow: [
BoxShadow(
color: AppColor.plainBlack.withOpacity(0.15),
spreadRadius: 2,
blurRadius: 10,
offset:
const Offset(0, 3), // changes position of shadow
),
],
isHasTopBorder: true,
collapsedBackgroundColor: AppColor.portfolioCardBgColor,
borderRadius: BorderRadius.circular(10),
onExpansionChanged: (bool expanding) {
if (expanding) {
setState(() {
complianceSelectedTile = index;
});
} else {
setState(() {
complianceSelectedTile = -1;
});
}
},
backgroundColor: AppColor.portfolioCardBgColor,
childrenPadding: EdgeInsets.only(
left: 0.w, right: 0.w, bottom: 8.h, top: 10.h),
initiallyExpanded: index == complianceSelectedTile,
isHasTrailing: false,
title: Text(
complianceSecurityAndSupportList[index]['title']!,
maxLines: 3,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.otpTextColor,
fontWeight: FontWeight.w600),
),
children: <Widget>[
Container(
margin: const EdgeInsets.symmetric(horizontal: 5),
width: 1.sw,
// height: 109.h,
decoration: BoxDecoration(
color: AppColor.plainWhite,
borderRadius: BorderRadius.circular(10.r),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 12.w, vertical: 10.h),
child: Text(
complianceSecurityAndSupportList[index]
['answer']!,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.investPaymentTextColor,
),
),
),
)
],
),
),
),
),
),
],
),
)),
);
}
}