diff --git a/packages/chicken/lib/presentation/pages/poultry_science/active_hatching/logic.dart b/packages/chicken/lib/presentation/pages/poultry_science/active_hatching/logic.dart index b5363a6..b472c8d 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/active_hatching/logic.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/active_hatching/logic.dart @@ -10,7 +10,7 @@ class ActiveHatchingLogic extends GetxController { final RxBool isLoadingMoreList = false.obs; RxInt currentPage = 1.obs; - RxList isExpandedList = [].obs; + RxInt expandedIndex = RxInt(-1); List routesName = ['اقدام', 'جوجه ریزی فعال']; @override @@ -65,4 +65,8 @@ class ActiveHatchingLogic extends GetxController { }, ); } + + void toggleExpanded(int index) { + expandedIndex.value = expandedIndex.value == index ? -1 : index; + } } diff --git a/packages/chicken/lib/presentation/pages/poultry_science/active_hatching/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/active_hatching/view.dart index ec00fab..aa8a085 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/active_hatching/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/active_hatching/view.dart @@ -37,15 +37,15 @@ class ActiveHatchingPage extends GetView { var item = data.value.data!.results![index]; return ObxValue((val) { return ExpandableListItem2( - selected: val.contains(index), - onTap: () => controller.isExpandedList.toggle(index), + selected: val.value.isEqual(index), + onTap: () => controller.toggleExpanded(index), index: index, child: itemListWidget(item), secondChild: itemListExpandedWidget(item), labelColor: AppColor.blueLight, labelIcon: Assets.vec.checkSquareSvg.path, ); - }, controller.isExpandedList); + }, controller.expandedIndex); }, itemCount: data.value.data?.results?.length ?? 0, separatorBuilder: (context, index) => SizedBox(height: 8.h), diff --git a/packages/chicken/lib/presentation/pages/poultry_science/farm/logic.dart b/packages/chicken/lib/presentation/pages/poultry_science/farm/logic.dart index 92ff674..a0419a6 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/farm/logic.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/farm/logic.dart @@ -41,7 +41,7 @@ class FarmLogic extends GetxController { RxInt currentPage = 1.obs; final RxBool isLoadingMoreList = false.obs; - RxList isExpandedList = [].obs; + RxInt expandedIndex = RxInt(-1); @override void onReady() { @@ -92,7 +92,7 @@ class FarmLogic extends GetxController { previous: res?.previous, results: [ ...(farmList.value.data?.results ?? []), - ...?(res?.results as List?), + ...?res?.results, ], ), ); @@ -101,4 +101,7 @@ class FarmLogic extends GetxController { onError: (error, stackTrace) {}, ); } + void toggleExpanded(int index) { + expandedIndex.value = expandedIndex.value == index ? -1 : index; + } } diff --git a/packages/chicken/lib/presentation/pages/poultry_science/farm/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/farm/view.dart index 45c88de..addc2aa 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/farm/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/farm/view.dart @@ -51,15 +51,15 @@ class FarmPage extends GetView { var item = data.value.data!.results![index]; return ObxValue((val) { return ExpandableListItem2( - selected: val.contains(index), - onTap: () => controller.isExpandedList.toggle(index), + selected: val.value.isEqual(index), + onTap: () => controller.toggleExpanded(index), index: index, child: itemListWidget(item), secondChild: itemListExpandedWidget(item), labelColor: AppColor.blueLight, labelIcon: Assets.vec.cubeScanSvg.path, ); - }, controller.isExpandedList); + }, controller.expandedIndex); }, itemCount: data.value.data?.results?.length ?? 0, separatorBuilder: (context, index) => SizedBox(height: 8.h), diff --git a/packages/chicken/lib/presentation/pages/poultry_science/genocide/logic.dart b/packages/chicken/lib/presentation/pages/poultry_science/genocide/logic.dart index d86414e..bd73ec7 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/genocide/logic.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/genocide/logic.dart @@ -11,7 +11,7 @@ class GenocideLogic extends GetxController { Rx>> poultryOrderList = Resource>.loading().obs; - RxList isExpandedList = [].obs; + RxInt expandedIndex = RxInt(-1); final RxInt currentPage = 1.obs; final RxBool isLoadingMore = false.obs; @@ -84,7 +84,7 @@ class GenocideLogic extends GetxController { Future deletePoultryOrder(int id) async { - isExpandedList.clear(); + toggleExpanded(-1); await safeCall( call: () async => await rootLogic.poultryRepository.deletePoultryOder( token: rootLogic.tokenService.accessToken.value!, @@ -95,4 +95,9 @@ class GenocideLogic extends GetxController { }, ); } + + + void toggleExpanded(int index) { + expandedIndex.value = expandedIndex.value == index ? -1 : index; + } } diff --git a/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart index d1109ce..430585c 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart @@ -45,15 +45,15 @@ class GenocidePage extends GetView { var item = data.value.data!.results![index]; return ObxValue((val) { return ExpandableListItem2( - selected: val.contains(index), - onTap: () => controller.isExpandedList.toggle(index), + selected: val.value.isEqual(index), + onTap: () => controller.toggleExpanded(index), index: index, child: itemListWidget(item), secondChild: itemListExpandedWidget(item), labelColor: AppColor.blueLight, labelIcon: Assets.vec.cubeScanSvg.path, ); - }, controller.isExpandedList); + }, controller.expandedIndex); }, itemCount: data.value.data?.results?.length ?? 0, separatorBuilder: (context, index) => SizedBox(height: 8.h), diff --git a/packages/chicken/lib/presentation/pages/poultry_science/home/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/home/view.dart index b242cc1..0cda502 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/home/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/home/view.dart @@ -1,6 +1,7 @@ import 'package:flutter/cupertino.dart' hide LinearGradient; import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/presentation/routes/routes.dart'; +import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/widget/app_bar.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/presentation/widget/custom/information_card_widget.dart'; @@ -219,22 +220,20 @@ class PoultryScienceHomePage extends GetView { Padding( padding: const EdgeInsets.symmetric(horizontal: 2.0, vertical: 2), child: Wrap( - spacing: 15, - runSpacing: 8, + spacing: 24.w, + runSpacing: 8.h, children: [ widelyUsed( title: 'بازرسی', iconPath: Assets.vec.cubeSearchSvg.path, isOnEdit: false, - cardColor: AppColor.greenLightActive, labelColor: AppColor.greenNormal, textColor: AppColor.greenDarkHover, onTap: () async { controller.rootLogic.currentPage.value = 0; - controller.rootLogic.currentPage.refresh(); - await Future.delayed(Duration(milliseconds: 100)); - Get.toNamed(ChickenRoutes.inspectionPoultryScience, id: 0); + + Get.toNamed(ChickenRoutes.inspectionPoultryScience, id: poultryFirstKey); }, ), @@ -244,9 +243,8 @@ class PoultryScienceHomePage extends GetView { onTap: () async { controller.rootLogic.currentPage.value = 0; - controller.rootLogic.currentPage.refresh(); - await Future.delayed(Duration(milliseconds: 100)); - //Get.toNamed(ChickenRoutes.inspectionPoultryScience, id: 0); + + Get.toNamed(ChickenRoutes.inspectionPoultryScience, id: poultryFirstKey); }, isOnEdit: false, ), @@ -256,9 +254,7 @@ class PoultryScienceHomePage extends GetView { isOnEdit: false, onTap: () async { controller.rootLogic.currentPage.value = 1; - controller.rootLogic.currentPage.refresh(); - await Future.delayed(Duration(milliseconds: 100)); - // Get.toNamed(ChickenRoutes.salesOutOfProvinceSteward, id: 1); + Get.toNamed(ChickenRoutes.salesOutOfProvinceSteward, id: poultryFirstKey); }, ), @@ -268,9 +264,7 @@ class PoultryScienceHomePage extends GetView { isOnEdit: false, onTap: () async { controller.rootLogic.currentPage.value = 1; - controller.rootLogic.currentPage.refresh(); - await Future.delayed(Duration(milliseconds: 100)); - // Get.toNamed(ChickenRoutes.salesInProvinceSteward, id: 1); + Get.toNamed(ChickenRoutes.salesInProvinceSteward, id: poultryFirstKey); }, ), ], diff --git a/packages/chicken/lib/presentation/pages/poultry_science/inspection/logic.dart b/packages/chicken/lib/presentation/pages/poultry_science/inspection/logic.dart index 6e69cb5..288e5a7 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/inspection/logic.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/inspection/logic.dart @@ -16,7 +16,7 @@ class InspectionPoultryScienceLogic extends GetxController { final RxBool isLoadingMoreAllocationsMade = false.obs; RxInt currentPage = 1.obs; - RxList isExpandedList = [].obs; + RxInt expandedIndex = RxInt(-1); RxList pickedImages = [].obs; final List _multiPartPickedImages = []; @@ -210,4 +210,8 @@ class InspectionPoultryScienceLogic extends GetxController { return 0.0; } } + + void toggleExpanded(int index) { + expandedIndex.value = expandedIndex.value == index ? -1 : index; + } } diff --git a/packages/chicken/lib/presentation/pages/poultry_science/inspection/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/inspection/view.dart index db28b5c..3553f96 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/inspection/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/inspection/view.dart @@ -42,15 +42,15 @@ class InspectionPoultrySciencePage extends GetView controller.isExpandedList.toggle(index), + selected: val.value.isEqual(index), + onTap: () => controller.toggleExpanded(index), index: index, child: itemListWidget(item), secondChild: itemListExpandedWidget(item), labelColor: AppColor.blueLight, labelIcon: Assets.vec.checkSquareSvg.path, ); - }, controller.isExpandedList); + }, controller.expandedIndex); }, itemCount: data.value.data?.results?.length ?? 0, separatorBuilder: (context, index) => SizedBox(height: 8.h), @@ -335,15 +335,15 @@ class InspectionPoultrySciencePage extends GetView controller.isExpandedList.toggle(index), + selected: val.value.isEqual(index), + onTap: () => controller.toggleExpanded(index), index: index, child: itemListWidgetReport(item), secondChild: itemListExpandedWidgetReport(item), labelColor: AppColor.blueLight, labelIcon: Assets.vec.checkSquareSvg.path, ); - }, controller.isExpandedList); + }, controller.expandedIndex); }, itemCount: data.value.data?.results?.length ?? 0, separatorBuilder: (context, index) => SizedBox(height: 8.h), diff --git a/packages/chicken/lib/presentation/pages/poultry_science/poultry_action/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/poultry_action/view.dart index 391ddd2..78f7041 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/poultry_action/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/poultry_action/view.dart @@ -62,4 +62,5 @@ class PoultryActionPage extends GetView { ); }, controller.items); } + } diff --git a/packages/core/lib/presentation/widget/list_view/r_paginated_list_view.dart b/packages/core/lib/presentation/widget/list_view/r_paginated_list_view.dart index a29d878..45a2df4 100644 --- a/packages/core/lib/presentation/widget/list_view/r_paginated_list_view.dart +++ b/packages/core/lib/presentation/widget/list_view/r_paginated_list_view.dart @@ -47,7 +47,7 @@ class RPaginatedListView extends StatelessWidget { }*/ if (resource.isLoading) { - return loadingWidget ?? const LoadingWidget(); + return loadingWidget ?? LoadingWidget(); } if (resource.isError) { diff --git a/packages/core/lib/presentation/widget/widget.dart b/packages/core/lib/presentation/widget/widget.dart index 721222f..14a84c9 100644 --- a/packages/core/lib/presentation/widget/widget.dart +++ b/packages/core/lib/presentation/widget/widget.dart @@ -23,7 +23,7 @@ export 'list_item/list_item2.dart'; export 'list_item/list_item_with_out_number.dart'; export 'list_row_item.dart'; export 'list_view/list_view.dart'; -export 'loading_widget.dart'; +export 'loading/loading_widget.dart'; // other export 'logo_widget.dart'; export 'marquee/r_marquee.dart';