diff --git a/lib/services/network/request_helper.dart b/lib/services/network/request_helper.dart index 37c1f14..ccb6391 100644 --- a/lib/services/network/request_helper.dart +++ b/lib/services/network/request_helper.dart @@ -3,7 +3,7 @@ import 'package:didvan/models/requests/radar.dart'; import 'package:didvan/models/requests/studio.dart'; class RequestHelper { - static const String baseUrl = 'https://api.didvan.app'; + static const String baseUrl = 'https://test.api.didvan.app'; static const String _baseUserUrl = baseUrl + '/user'; static const String _baseRadarUrl = baseUrl + '/radar'; static const String _baseNewsUrl = baseUrl + '/news'; @@ -36,10 +36,11 @@ class RequestHelper { baseUrl + '/tag' + _urlConcatGenerator([ + MapEntry('page', page?.toString()), MapEntry('limit', limit?.toString() ?? '3'), MapEntry('type', type), MapEntry('id', itemId?.toString() ?? '1'), - MapEntry('tags', _urlListConcatGenerator(ids)) + MapEntry('tags', _urlListConcatGenerator(ids)), ]); static String markRadar(int id) => _baseRadarUrl + '/$id/mark'; diff --git a/lib/views/home/hashtag/hashtag.dart b/lib/views/home/hashtag/hashtag.dart index 2e94ce0..d833ad9 100644 --- a/lib/views/home/hashtag/hashtag.dart +++ b/lib/views/home/hashtag/hashtag.dart @@ -6,6 +6,7 @@ import 'package:didvan/views/home/widgets/radar_overview.dart'; import 'package:didvan/views/widgets/didvan/scaffold.dart'; import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:provider/provider.dart'; class Hashtag extends StatefulWidget { @@ -37,10 +38,16 @@ class _HashtagState extends State { placeholder: RadarOverview.placeholder, builder: (context, state, index) { index++; - if (index % 15 == 0 && index / 15 >= state.page) { - state.getTagItems(page: index ~/ 15 + 1); + if (index % 15 == 0 && state.lastPage != state.page) { + state.getTagItems(page: state.page + 1); } index--; + if (index == state.items.length) { + return SpinKitThreeBounce( + color: Theme.of(context).colorScheme.primary, + size: 24, + ); + } final item = state.items[index]; final type = item.type; if (type == 'radar') { @@ -57,8 +64,9 @@ class _HashtagState extends State { } return Container(); }, - childCount: state.items.length, - onRetry: () => state.getTagItems(page: 1), + childCount: + state.items.length + (state.page != state.lastPage ? 1 : 0), + onRetry: () => state.getTagItems(page: state.page), ), ) ], diff --git a/lib/views/home/hashtag/hashtag_state.dart b/lib/views/home/hashtag/hashtag_state.dart index a94cdbe..fc1e5e7 100644 --- a/lib/views/home/hashtag/hashtag_state.dart +++ b/lib/views/home/hashtag/hashtag_state.dart @@ -9,6 +9,7 @@ class HashtagState extends CoreProvier { late final int id; int page = 1; + int lastPage = 1; Future getTagItems({required int page}) async { this.page = page; diff --git a/lib/views/home/news/news.dart b/lib/views/home/news/news.dart index 2911204..30df281 100644 --- a/lib/views/home/news/news.dart +++ b/lib/views/home/news/news.dart @@ -57,7 +57,7 @@ class _NewsState extends State { builder: (context, state, index) { index += 2; if (index % 15 == 0 && state.lastPage != state.page) { - state.getNews(page: index ~/ 15 + 1); + state.getNews(page: state.page + 1); } index -= 2; if (index >= state.news.length) { diff --git a/lib/views/home/radar/radar.dart b/lib/views/home/radar/radar.dart index 1a241b0..87c3e83 100644 --- a/lib/views/home/radar/radar.dart +++ b/lib/views/home/radar/radar.dart @@ -130,7 +130,7 @@ class _RadarState extends State { builder: (context, state, index) { index += 2; if (index % 15 == 0 && state.lastPage != state.page) { - state.getRadars(page: index ~/ 15 + 1); + state.getRadars(page: state.page + 1); } index -= 2; if (index >= state.radars.length) {