import 'package:fcs/domain/entities/pickup.dart'; import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/pickup/pickup_info.dart'; import 'package:fcs/pages/pickup/pickup_list_row.dart'; import 'package:fcs/pages/pickup_search/pickup_search.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pagination/paginator_listview.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'model/pickup_model.dart'; class PickupList extends StatefulWidget { @override _PickupListState createState() => _PickupListState(); } class _PickupListState extends State { bool _isLoading = false; @override void initState() { context.read().loadPaginationPickups(); super.initState(); } @override Widget build(BuildContext context) { var pickupModel = Provider.of(context); var pickups = pickupModel.pickups; return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( appBar: LocalAppBar( labelKey: "pickup.title", actions: [ IconButton( icon: Icon( Icons.search, color: Colors.white, ), iconSize: 30, onPressed: () => searchPickup(context, callbackPickupSelect: _searchCallback)), ], ), body: PaginatorListView( paginatorListener: pickups!, rowBuilder: (p) => PickupListRow(pickup: p), color: primaryColor, )), ); } _searchCallback(Pickup pickup) async { Pickup? _pickup = await context.read().getPickup(pickup.id!); if (_pickup == null) return; Navigator.push( context, CupertinoPageRoute(builder: (context) => PickupInfo(pickup: _pickup)), ); } }