From 0dc3eee22bdf60559f1fe28211cc9a2ddb2d5bfb Mon Sep 17 00:00:00 2001 From: WaseemAbbasi22 <50428976+WaseemAbbasi22@users.noreply.github.com> Date: Tue, 15 Sep 2026 14:34:45 +0300 Subject: [PATCH] pagination added need to review ui --- .../asset_tracking_item_view.dart | 17 +++++++++++--- .../asset_tracking/asset_tracking_page.dart | 23 +++++++------------ 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/lib/modules/asset_tracking/asset_tracking_item_view.dart b/lib/modules/asset_tracking/asset_tracking_item_view.dart index 4b24b73a..0b726413 100644 --- a/lib/modules/asset_tracking/asset_tracking_item_view.dart +++ b/lib/modules/asset_tracking/asset_tracking_item_view.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart'; +import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/views/widgets/item_views/info_header_widget.dart'; @@ -11,8 +12,9 @@ import 'models/asset_tracking_model.dart'; class AssetTrackingListItemView extends StatelessWidget { final AssetTrackingModel asset; + bool isGridView; - AssetTrackingListItemView(this.asset, {Key? key}) : super(key: key); + AssetTrackingListItemView(this.asset, this.isGridView, {Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -36,9 +38,18 @@ class AssetTrackingListItemView extends StatelessWidget { label: "Last seen", value: asset.location?.lastSeen?.toServiceRequestDetailsFormat, showEmptyValue: true, - showArrow: true, - arrowMsg: "View on map", + showArrow: isGridView ? false : true, + arrowMsg: isGridView ? "" : "View on map", ), + if (isGridView) ...[ + 4.height, + InfoTextWidget( + label: "View on map", + value: '', + showEmptyValue: true, + showArrow: true, + ), + ], ], ).toShadowContainer(context); } diff --git a/lib/modules/asset_tracking/asset_tracking_page.dart b/lib/modules/asset_tracking/asset_tracking_page.dart index fa1ef7be..a4c1a28e 100644 --- a/lib/modules/asset_tracking/asset_tracking_page.dart +++ b/lib/modules/asset_tracking/asset_tracking_page.dart @@ -7,6 +7,7 @@ import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/modules/asset_tracking/asset_tracking_provider.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; +import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; import 'asset_tracking_item_view.dart'; import 'map_tracking_page.dart'; @@ -131,7 +132,7 @@ class _AssetTrackingPageState extends State with SingleTicker if (itemIndex >= provider.assetsList.length) { return const Padding( padding: EdgeInsets.symmetric(vertical: 16), - child: Center(child: CircularProgressIndicator()), + child: ALoading(), ); } final delay = itemIndex * 0.08; @@ -162,7 +163,7 @@ class _AssetTrackingPageState extends State with SingleTicker return FadeTransition( opacity: animation, - child: SlideTransition(position: slideAnimation, child: AssetTrackingListItemView(provider.assetsList[itemIndex])).onPress(() { + child: SlideTransition(position: slideAnimation, child: AssetTrackingListItemView(provider.assetsList[itemIndex], false)).onPress(() { Navigator.push(context, MaterialPageRoute(builder: (context) => MapTrackingPage(assetTrackingData: provider.assetsList[itemIndex]))); }), ); @@ -176,17 +177,9 @@ class _AssetTrackingPageState extends State with SingleTicker return Consumer(builder: (context, provider, _) { return (provider.assetsList.isEmpty && !provider.isLoading) ? NoDataFound(message: context.translation.noDataFound).center - : - // ListView.separated( - // - // padding: const EdgeInsets.all(16), - - NotificationListener( + : NotificationListener( onNotification: (scrollInfo) { - if (!provider.isLoading && - !provider.isNextPageLoading && - provider.nextPage && - scrollInfo.metrics.pixels >= (scrollInfo.metrics.maxScrollExtent - 200)) { + if (!provider.isLoading && !provider.isNextPageLoading && provider.nextPage && scrollInfo.metrics.pixels >= (scrollInfo.metrics.maxScrollExtent - 200)) { getAssetsFromPenguin(loadMore: true); } return false; @@ -199,7 +192,7 @@ class _AssetTrackingPageState extends State with SingleTicker padding: const EdgeInsets.all(16), gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, - childAspectRatio: .8, + childAspectRatio: 1.2, // need to fix this it's not flexiable with content.. crossAxisSpacing: 12, mainAxisSpacing: 12, ), @@ -239,7 +232,7 @@ class _AssetTrackingPageState extends State with SingleTicker return FadeTransition( opacity: animation, - child: SlideTransition(position: slideAnimation, child: AssetTrackingListItemView(provider.assetsList[itemIndex])).onPress(() { + child: SlideTransition(position: slideAnimation, child: AssetTrackingListItemView(provider.assetsList[itemIndex], true)).onPress(() { Navigator.push(context, MaterialPageRoute(builder: (context) => MapTrackingPage(assetTrackingData: provider.assetsList[itemIndex]))); }), ); @@ -249,7 +242,7 @@ class _AssetTrackingPageState extends State with SingleTicker if (provider.isNextPageLoading) const Padding( padding: EdgeInsets.symmetric(vertical: 16), - child: Center(child: CircularProgressIndicator()), + child: ALoading(), ), ], ),