work on paginations
This commit is contained in:
parent
c47fbac5fe
commit
2815fc8ddc
|
|
@ -3,7 +3,7 @@ import 'package:didvan/models/requests/radar.dart';
|
||||||
import 'package:didvan/models/requests/studio.dart';
|
import 'package:didvan/models/requests/studio.dart';
|
||||||
|
|
||||||
class RequestHelper {
|
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 _baseUserUrl = baseUrl + '/user';
|
||||||
static const String _baseRadarUrl = baseUrl + '/radar';
|
static const String _baseRadarUrl = baseUrl + '/radar';
|
||||||
static const String _baseNewsUrl = baseUrl + '/news';
|
static const String _baseNewsUrl = baseUrl + '/news';
|
||||||
|
|
@ -36,10 +36,11 @@ class RequestHelper {
|
||||||
baseUrl +
|
baseUrl +
|
||||||
'/tag' +
|
'/tag' +
|
||||||
_urlConcatGenerator([
|
_urlConcatGenerator([
|
||||||
|
MapEntry('page', page?.toString()),
|
||||||
MapEntry('limit', limit?.toString() ?? '3'),
|
MapEntry('limit', limit?.toString() ?? '3'),
|
||||||
MapEntry('type', type),
|
MapEntry('type', type),
|
||||||
MapEntry('id', itemId?.toString() ?? '1'),
|
MapEntry('id', itemId?.toString() ?? '1'),
|
||||||
MapEntry('tags', _urlListConcatGenerator(ids))
|
MapEntry('tags', _urlListConcatGenerator(ids)),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
static String markRadar(int id) => _baseRadarUrl + '/$id/mark';
|
static String markRadar(int id) => _baseRadarUrl + '/$id/mark';
|
||||||
|
|
|
||||||
|
|
@ -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/didvan/scaffold.dart';
|
||||||
import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart';
|
import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class Hashtag extends StatefulWidget {
|
class Hashtag extends StatefulWidget {
|
||||||
|
|
@ -37,10 +38,16 @@ class _HashtagState extends State<Hashtag> {
|
||||||
placeholder: RadarOverview.placeholder,
|
placeholder: RadarOverview.placeholder,
|
||||||
builder: (context, state, index) {
|
builder: (context, state, index) {
|
||||||
index++;
|
index++;
|
||||||
if (index % 15 == 0 && index / 15 >= state.page) {
|
if (index % 15 == 0 && state.lastPage != state.page) {
|
||||||
state.getTagItems(page: index ~/ 15 + 1);
|
state.getTagItems(page: state.page + 1);
|
||||||
}
|
}
|
||||||
index--;
|
index--;
|
||||||
|
if (index == state.items.length) {
|
||||||
|
return SpinKitThreeBounce(
|
||||||
|
color: Theme.of(context).colorScheme.primary,
|
||||||
|
size: 24,
|
||||||
|
);
|
||||||
|
}
|
||||||
final item = state.items[index];
|
final item = state.items[index];
|
||||||
final type = item.type;
|
final type = item.type;
|
||||||
if (type == 'radar') {
|
if (type == 'radar') {
|
||||||
|
|
@ -57,8 +64,9 @@ class _HashtagState extends State<Hashtag> {
|
||||||
}
|
}
|
||||||
return Container();
|
return Container();
|
||||||
},
|
},
|
||||||
childCount: state.items.length,
|
childCount:
|
||||||
onRetry: () => state.getTagItems(page: 1),
|
state.items.length + (state.page != state.lastPage ? 1 : 0),
|
||||||
|
onRetry: () => state.getTagItems(page: state.page),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ class HashtagState extends CoreProvier {
|
||||||
|
|
||||||
late final int id;
|
late final int id;
|
||||||
int page = 1;
|
int page = 1;
|
||||||
|
int lastPage = 1;
|
||||||
|
|
||||||
Future<void> getTagItems({required int page}) async {
|
Future<void> getTagItems({required int page}) async {
|
||||||
this.page = page;
|
this.page = page;
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class _NewsState extends State<News> {
|
||||||
builder: (context, state, index) {
|
builder: (context, state, index) {
|
||||||
index += 2;
|
index += 2;
|
||||||
if (index % 15 == 0 && state.lastPage != state.page) {
|
if (index % 15 == 0 && state.lastPage != state.page) {
|
||||||
state.getNews(page: index ~/ 15 + 1);
|
state.getNews(page: state.page + 1);
|
||||||
}
|
}
|
||||||
index -= 2;
|
index -= 2;
|
||||||
if (index >= state.news.length) {
|
if (index >= state.news.length) {
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,7 @@ class _RadarState extends State<Radar> {
|
||||||
builder: (context, state, index) {
|
builder: (context, state, index) {
|
||||||
index += 2;
|
index += 2;
|
||||||
if (index % 15 == 0 && state.lastPage != state.page) {
|
if (index % 15 == 0 && state.lastPage != state.page) {
|
||||||
state.getRadars(page: index ~/ 15 + 1);
|
state.getRadars(page: state.page + 1);
|
||||||
}
|
}
|
||||||
index -= 2;
|
index -= 2;
|
||||||
if (index >= state.radars.length) {
|
if (index >= state.radars.length) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue