one signal, faq api

This commit is contained in:
jayesh
2024-04-02 18:45:38 +05:30
parent 9fca533be0
commit d144e9b562
4 changed files with 48 additions and 53 deletions

View File

@@ -26,12 +26,14 @@ class _FaqScreenState extends State<FaqScreen> {
@override
void initState() {
// isExpandedList = RxList.generate(Faqcard.length, (index) => index == 0);
FAQApi().getFAQData().then((value) {
faqModel = FAQModel.fromJson(value.data);
for (var a in faqModel.data!) {
categoryList.add(a.categoryName!);
}
isExpandedList = RxList.generate(
faqModel.data![selectedIndex.value].faqQueAns!.length,
(index) => index == 0);
isLoading.value = false;
});
super.initState();
@@ -43,15 +45,15 @@ class _FaqScreenState extends State<FaqScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: CommonAppbar(
appBar: const CommonAppbar(
titleTxt: "",
),
backgroundColor: Colors.black,
extendBody: true,
body: Obx(
() => Stack(children: [
CommonBlurLeft(),
CommonBlurRight(),
const CommonBlurLeft(),
const CommonBlurRight(),
isLoading.value
? const Center(
child: CircularProgressIndicator(
@@ -60,15 +62,15 @@ class _FaqScreenState extends State<FaqScreen> {
)
: Stack(children: [
Padding(
padding: EdgeInsets.symmetric(horizontal: 16),
padding: const EdgeInsets.symmetric(horizontal: 16),
child: ListView(
physics: BouncingScrollPhysics(),
physics: const BouncingScrollPhysics(),
children: [
text25W600('FAQ'),
sizedBoxHeight(20),
CustomTextFormField1(
hintText: 'Search Chats',
leadingIcon: Container(
leadingIcon: SizedBox(
height: 20,
width: 20,
child: Center(
@@ -91,6 +93,12 @@ class _FaqScreenState extends State<FaqScreen> {
return GestureDetector(
onTap: () {
selectedIndex.value = index;
isExpandedList = RxList.generate(
faqModel
.data![selectedIndex.value]
.faqQueAns!
.length,
(index) => index == 0);
},
child: Row(
children: [
@@ -103,45 +111,22 @@ class _FaqScreenState extends State<FaqScreen> {
}),
),
sizedBoxHeight(20.h),
// Obx(() {
// return selectedIndex == 0
// ? Column(
// children: List.generate(Faqcard.length, (index) {
// return customExpandableItem(
// isExpanded: isExpandedList[index],
// title: Faqcard[index]['title']!,
// content: Faqcard[index]['content']!,
// toggleExpansion: () => toggleExpansion(index),
// );
// }))
// : Column(
// children: List.generate(Faqcard2.length, (index) {
// return customExpandableItem(
// isExpanded: isExpandedList[index],
// title: Faqcard2[index]['title']!,
// content: Faqcard2[index]['content']!,
// toggleExpansion: () => toggleExpansion(index),
// );
// }));
// }),
// ListView.builder(
// shrinkWrap: true,
// itemCount: Faqcard.length,
// itemBuilder: (BuildContext context, int index) {
// return Obx(
// () {
// return customExpandableItem(
// isExpanded: isExpandedList[index],
// title: Faqcard[index]['title']!,
// content: Faqcard[index]['content']!,
// toggleExpansion: () => toggleExpansion(index),
// );
// },
// );
// },
// ),
Obx(() {
return Column(
children: List.generate(
faqModel.data![selectedIndex.value]
.faqQueAns!.length, (index) {
return customExpandableItem(
isExpanded: isExpandedList[index],
title: faqModel.data![selectedIndex.value]
.faqQueAns![index].faqQuestion!,
content: faqModel.data![selectedIndex.value]
.faqQueAns![index].faqAnswer!,
toggleExpansion: () =>
toggleExpansion(index),
);
}));
}),
sizedBoxHeight(30.h),
]))
])
@@ -157,8 +142,8 @@ class _FaqScreenState extends State<FaqScreen> {
width: 136.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5),
color: Color(0XFF3F0502),
border: Border.all(color: Color(0xFF9A0000), width: 1)),
color: const Color(0XFF3F0502),
border: Border.all(color: const Color(0xFF9A0000), width: 1)),
child: Center(child: text16W500(text)),
)
: commonGlassContainer(
@@ -210,7 +195,7 @@ class _FaqScreenState extends State<FaqScreen> {
color: Colors.white,
),
),
Spacer(),
const Spacer(),
Icon(
isExpanded
? Icons.keyboard_arrow_up_outlined
@@ -237,14 +222,15 @@ class _FaqScreenState extends State<FaqScreen> {
bottomRight: Radius.circular(8.r),
),
color: Colors.black,
border: Border.all(color: Color(0xFF3A3A3A), width: 0.5)),
border:
Border.all(color: const Color(0xFF3A3A3A), width: 0.5)),
child: Padding(
padding: EdgeInsets.only(
top: 11.h, left: 14.w, bottom: 25.h, right: 28.w),
child: Text(
content,
style: TextStyle(
color: Color(0xFFFFFFFF),
color: const Color(0xFFFFFFFF),
fontFamily: 'manrope',
fontSize: 14.sp,
fontWeight: FontWeight.w400,
@@ -270,7 +256,7 @@ class _FaqScreenState extends State<FaqScreen> {
color: Colors.white,
),
),
Spacer(),
const Spacer(),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [