_handlePressDonate(Item? item) { if (item != null) { BlocProvider.of<ItemBloc>(context).add(LoadItem(item.id)); BlocProvider.of<ProfileBloc>(context).add(LoadProfile(item.userId)); context.router.push( DonateRoute( itemId: item.id, conversationId: widget.conversationId), ); } }
Future<List<Item>> fetchNgoItems(int ngoId, int startIndex) async { final http.Response response = await _httpClient.get("/ngo/$ngoId/item?page=$startIndex&size=$maxItemsPerPage"); print(response.body); return jsonDecode(utf8.decode(response.bodyBytes))['content'] .map<Item>((json) => Item.fromJson(json)) .toList(); }
try { if (state.status == ItemsStatus.initial) { final items = await backendAPI.fetchNgoItems(event.ngoId, event.index); return emit(state.copyWith( status: ItemsStatus.success, ngoItems: items, hasReachedMax: false, )); } final items = await backendAPI.fetchNgoItems(event.ngoId, event.index); emit(items.isEmpty ? state.copyWith(hasReachedMax: true) : state.copyWith( status: ItemsStatus.success, ngoItems: List.of(state.ngoItems)..addAll(items), hasReachedMax: false, )); }
Builder(builder: (context) { return BlocBuilder<NgoItemListBloc, NgoItemListState>( bloc: bloc ..add( LoadNgoItemList(ngo.id, pageIndex), ),
void _onScroll() { if (_isBottom) { context.read<NgoItemListBloc>().add(LoadNgoItemList(ngo.id, pageIndex += 1)); } }
{"content":[],"pageable":{"sort":{"empty":true,"sorted":false,"unsorted":true},**"offset":70**,**"pageNumber":7**,"pageSize":10,"paged":true,"unpaged":false},"totalPages":7,"totalElements":63,"last":true,"size":10,"number":7,"sort":{"empty":true,"sorted":false,"unsorted":true},"numberOfElements":0,"first":false,"empty":true}
flutter: {"content":[],"pageable":{"sort":{"empty":true,"sorted":false,"unsorted":true},**"offset":150**,**"pageNumber":15,**"pageSize":10,"paged":true,"unpaged":false},"totalPages":7,"totalElements":63,"last":true,"size":10,"number":15,"sort":{"empty":true,"sorted":false,"unsorted":true},"numberOfElements":0,"first":false,"empty":true}