feat: custom grpc reply (#25)

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-11-29 22:03:02 +08:00
committed by GitHub
parent 9b9e28dcb8
commit be4dfd99c6
28 changed files with 637 additions and 400 deletions

View File

@@ -2,6 +2,7 @@ import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/http/member.dart';
import 'package:PiliPalaX/models/space_article/data.dart';
import 'package:PiliPalaX/pages/common/common_controller.dart';
import 'package:PiliPalaX/utils/extension.dart';
class MemberArticleCtr extends CommonController {
MemberArticleCtr({
@@ -21,12 +22,17 @@ class MemberArticleCtr extends CommonController {
@override
bool customHandleResponse(Success response) {
Data data = response.response;
if (data.item.isNullOrEmpty) {
isEnd = true;
}
if (currentPage == 1) {
count = data.count ?? -1;
} else if (loadingState.value is Success) {
data.item?.insertAll(0, (loadingState.value as Success).response);
}
isEnd = (data.item?.length ?? -1) >= count;
if ((data.item?.length ?? -1) >= count) {
isEnd = true;
}
loadingState.value = LoadingState.success(data.item);
return true;
}

View File

@@ -5,6 +5,7 @@ import 'package:PiliPalaX/pages/common/common_controller.dart';
import 'package:PiliPalaX/pages/member/new/content/member_contribute/member_contribute.dart'
show ContributeType;
import 'package:PiliPalaX/pages/member/new/controller.dart';
import 'package:PiliPalaX/utils/extension.dart';
import 'package:get/get.dart';
class MemberBangumiCtr extends CommonController {
@@ -31,10 +32,15 @@ class MemberBangumiCtr extends CommonController {
@override
bool customHandleResponse(Success response) {
Data data = response.response;
if (data.item.isNullOrEmpty) {
isEnd = true;
}
if (currentPage != 1 && loadingState.value is Success) {
data.item?.insertAll(0, (loadingState.value as Success).response);
}
isEnd = data.item!.length >= count;
if (data.item!.length >= count) {
isEnd = true;
}
loadingState.value = LoadingState.success(data.item);
return true;
}