update pagination listener

This commit is contained in:
tzw
2024-01-23 17:48:34 +06:30
parent f3f75a80c6
commit 5ec51c31fd
13 changed files with 186 additions and 181 deletions

View File

@@ -27,12 +27,7 @@ class PickupModel extends BaseModel {
}
Future<void> _initData() async {
logout();
pickups = PaginatorListener<Pickup>((data, id) => Pickup.fromMap(data, id),
onChange: () {
notifyListeners();
}, rowPerLoad: 30, insertNewByListener: true);
_loadPickups();
_loadPaginationPickups();
}
@override
@@ -40,20 +35,18 @@ class PickupModel extends BaseModel {
if (pickups != null) pickups!.close();
}
Future<void> _loadPickups() async {
_loadPaginationPickups() {
if (user == null) return;
String path = "/$pickup_collection";
Query col = FirebaseFirestore.instance.collection(path);
Query pageQuery = FirebaseFirestore.instance
.collection(path)
.orderBy("update_time", descending: true);
try {
Query listenerQuery = FirebaseFirestore.instance.collection(path);
Query pageQuery = FirebaseFirestore.instance
.collection(path)
.orderBy("update_time", descending: true);
pickups!.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
} catch (e) {
log.warning("Error!! $e");
}
pickups?.close();
pickups = PaginatorListener<Pickup>(
col, pageQuery, (data, id) => Pickup.fromMap(data, id),
rowPerLoad: 30);
}
Future<void> complete(

View File

@@ -65,7 +65,7 @@ class _PickupListState extends State<PickupList> {
),
body: PaginatorListView<Pickup>(
paginatorListener: pickups!,
rowBuilder: (p) => PickupListRow(key: ValueKey(p.id), pickup: p),
rowBuilder: (p) => PickupListRow(pickup: p),
color: primaryColor,
)),
);