add pagination with limit
This commit is contained in:
parent
ec7a286074
commit
600bf8d2f4
@ -51,7 +51,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
late ScrollController _scrollController;
|
||||
int _fetchCount = 0;
|
||||
bool _isLoading = false;
|
||||
bool _lastData = false;
|
||||
|
||||
Future<List<Events>> postsFuture = getPosts();
|
||||
List<Events> filteredPosts = [];
|
||||
@ -149,12 +148,10 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
}
|
||||
|
||||
void _incrementFetchCount() {
|
||||
if (!_lastData) {
|
||||
setState(() {
|
||||
_fetchCount++;
|
||||
});
|
||||
_fetchData();
|
||||
}
|
||||
setState(() {
|
||||
_fetchCount++;
|
||||
});
|
||||
_fetchData();
|
||||
}
|
||||
|
||||
void _scrollListener() {
|
||||
@ -392,9 +389,10 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
} else {
|
||||
queryParameters = dateParameter;
|
||||
}
|
||||
int limit = 20 * (_fetchCount + 1);
|
||||
|
||||
return Uri.parse(
|
||||
"${globals.api}/$endpoint?$queryParameters&skip=${_fetchCount}");
|
||||
"${globals.api}/$endpoint?$queryParameters&limit=${limit}");
|
||||
}
|
||||
|
||||
Future<void> searchSuggestionsByItem(String input) async {
|
||||
@ -405,7 +403,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
var url = await getUrlForEvents();
|
||||
final response = await http.get(url, headers: {
|
||||
"Content-Type": "application/json",
|
||||
HttpHeaders.cookieHeader: "access_token=$accessToken"
|
||||
HttpHeaders.cookieHeader: "acce0ss_token=$accessToken"
|
||||
});
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
@ -472,14 +470,14 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
print("fetch count : ${_fetchCount}");
|
||||
// Update state after getting the response
|
||||
if (body.isEmpty) {
|
||||
_lastData = true;
|
||||
_fetchCount--;
|
||||
}
|
||||
setState(() {
|
||||
if (body.isNotEmpty) {
|
||||
// If we have results, map them to Events
|
||||
filteredPosts.addAll(body
|
||||
filteredPosts = body
|
||||
.map((e) => Events.fromJson(e as Map<String, dynamic>))
|
||||
.toList());
|
||||
.toList();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
@ -619,7 +617,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
labelText: 'Search by item',
|
||||
onChanged: (value) {
|
||||
_fetchCount = 0;
|
||||
_lastData = false;
|
||||
if (value.isNotEmpty) {
|
||||
setState(() {
|
||||
itemName = value;
|
||||
@ -638,7 +635,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
},
|
||||
onClear: () {
|
||||
_fetchCount = 0;
|
||||
_lastData = false;
|
||||
setState(() {
|
||||
inputItem.clear();
|
||||
itemName = '';
|
||||
@ -651,7 +647,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
suggestions: suggestionsItem,
|
||||
onSuggestionTap: (suggestion) async {
|
||||
_fetchCount = 0;
|
||||
_lastData = false;
|
||||
setState(() {
|
||||
itemName = suggestion['name'];
|
||||
inputItem.text = itemName;
|
||||
@ -668,7 +663,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
labelText: 'Search by tags',
|
||||
onChanged: (value) {
|
||||
_fetchCount = 0;
|
||||
_lastData = false;
|
||||
if (value.isNotEmpty) {
|
||||
setState(() {
|
||||
itemTags = value;
|
||||
@ -687,7 +681,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
},
|
||||
onClear: () {
|
||||
_fetchCount = 0;
|
||||
_lastData = false;
|
||||
setState(() {
|
||||
inputTags.clear();
|
||||
});
|
||||
@ -696,7 +689,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
suggestions: suggestionsTags,
|
||||
onSuggestionTap: (suggestion) async {
|
||||
_fetchCount = 0;
|
||||
_lastData = false;
|
||||
|
||||
setState(() {
|
||||
itemTags = suggestion['name'];
|
||||
@ -722,7 +714,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
labelText: 'Search by geographical zone',
|
||||
onChanged: (value) async {
|
||||
_fetchCount = 0;
|
||||
_lastData = false;
|
||||
|
||||
if (value.isNotEmpty) {
|
||||
setState(() {
|
||||
@ -746,7 +737,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
},
|
||||
onClear: () async {
|
||||
_fetchCount = 0;
|
||||
_lastData = false;
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
prefs.remove("city_lat");
|
||||
prefs.remove("city_long");
|
||||
@ -763,8 +753,6 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
suggestions: suggestionsGeo,
|
||||
onSuggestionTap: (suggestion) async {
|
||||
_fetchCount = 0;
|
||||
_lastData = false;
|
||||
|
||||
final latitude = suggestion['geometry']['coordinates'][1];
|
||||
final longitude = suggestion['geometry']['coordinates'][0];
|
||||
setState(() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user