pagination added need to review ui

main_production_asset_tracking
WaseemAbbasi22 4 weeks ago
parent 7b6783a5da
commit 0dc3eee22b

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_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/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/widgets/item_views/info_header_widget.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 { class AssetTrackingListItemView extends StatelessWidget {
final AssetTrackingModel asset; final AssetTrackingModel asset;
bool isGridView;
AssetTrackingListItemView(this.asset, {Key? key}) : super(key: key); AssetTrackingListItemView(this.asset, this.isGridView, {Key? key}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -36,9 +38,18 @@ class AssetTrackingListItemView extends StatelessWidget {
label: "Last seen", label: "Last seen",
value: asset.location?.lastSeen?.toServiceRequestDetailsFormat, value: asset.location?.lastSeen?.toServiceRequestDetailsFormat,
showEmptyValue: true, showEmptyValue: true,
showArrow: true, showArrow: isGridView ? false : true,
arrowMsg: "View on map", arrowMsg: isGridView ? "" : "View on map",
), ),
if (isGridView) ...[
4.height,
InfoTextWidget(
label: "View on map",
value: '',
showEmptyValue: true,
showArrow: true,
),
],
], ],
).toShadowContainer(context); ).toShadowContainer(context);
} }

@ -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/modules/asset_tracking/asset_tracking_provider.dart';
import 'package:test_sa/new_views/app_style/app_color.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/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 'package:test_sa/views/widgets/loaders/no_data_found.dart';
import 'asset_tracking_item_view.dart'; import 'asset_tracking_item_view.dart';
import 'map_tracking_page.dart'; import 'map_tracking_page.dart';
@ -131,7 +132,7 @@ class _AssetTrackingPageState extends State<AssetTrackingPage> with SingleTicker
if (itemIndex >= provider.assetsList.length) { if (itemIndex >= provider.assetsList.length) {
return const Padding( return const Padding(
padding: EdgeInsets.symmetric(vertical: 16), padding: EdgeInsets.symmetric(vertical: 16),
child: Center(child: CircularProgressIndicator()), child: ALoading(),
); );
} }
final delay = itemIndex * 0.08; final delay = itemIndex * 0.08;
@ -162,7 +163,7 @@ class _AssetTrackingPageState extends State<AssetTrackingPage> with SingleTicker
return FadeTransition( return FadeTransition(
opacity: animation, 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]))); Navigator.push(context, MaterialPageRoute(builder: (context) => MapTrackingPage(assetTrackingData: provider.assetsList[itemIndex])));
}), }),
); );
@ -176,17 +177,9 @@ class _AssetTrackingPageState extends State<AssetTrackingPage> with SingleTicker
return Consumer<AssetTrackingProvider>(builder: (context, provider, _) { return Consumer<AssetTrackingProvider>(builder: (context, provider, _) {
return (provider.assetsList.isEmpty && !provider.isLoading) return (provider.assetsList.isEmpty && !provider.isLoading)
? NoDataFound(message: context.translation.noDataFound).center ? NoDataFound(message: context.translation.noDataFound).center
: : NotificationListener<ScrollNotification>(
// ListView.separated(
//
// padding: const EdgeInsets.all(16),
NotificationListener<ScrollNotification>(
onNotification: (scrollInfo) { onNotification: (scrollInfo) {
if (!provider.isLoading && if (!provider.isLoading && !provider.isNextPageLoading && provider.nextPage && scrollInfo.metrics.pixels >= (scrollInfo.metrics.maxScrollExtent - 200)) {
!provider.isNextPageLoading &&
provider.nextPage &&
scrollInfo.metrics.pixels >= (scrollInfo.metrics.maxScrollExtent - 200)) {
getAssetsFromPenguin(loadMore: true); getAssetsFromPenguin(loadMore: true);
} }
return false; return false;
@ -199,7 +192,7 @@ class _AssetTrackingPageState extends State<AssetTrackingPage> with SingleTicker
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2, crossAxisCount: 2,
childAspectRatio: .8, childAspectRatio: 1.2, // need to fix this it's not flexiable with content..
crossAxisSpacing: 12, crossAxisSpacing: 12,
mainAxisSpacing: 12, mainAxisSpacing: 12,
), ),
@ -239,7 +232,7 @@ class _AssetTrackingPageState extends State<AssetTrackingPage> with SingleTicker
return FadeTransition( return FadeTransition(
opacity: animation, 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]))); Navigator.push(context, MaterialPageRoute(builder: (context) => MapTrackingPage(assetTrackingData: provider.assetsList[itemIndex])));
}), }),
); );
@ -249,7 +242,7 @@ class _AssetTrackingPageState extends State<AssetTrackingPage> with SingleTicker
if (provider.isNextPageLoading) if (provider.isNextPageLoading)
const Padding( const Padding(
padding: EdgeInsets.symmetric(vertical: 16), padding: EdgeInsets.symmetric(vertical: 16),
child: Center(child: CircularProgressIndicator()), child: ALoading(),
), ),
], ],
), ),

Loading…
Cancel
Save