fix: like details (#1438)

* fix: like details

* check counts

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2025-10-03 16:46:14 +08:00
committed by GitHub
parent ec37af5900
commit 8f87d248a1
3 changed files with 32 additions and 12 deletions

View File

@@ -86,15 +86,16 @@ class MsgHttp {
} }
static Future<LoadingState<MsgLikeDetailData>> msgLikeDetail({ static Future<LoadingState<MsgLikeDetailData>> msgLikeDetail({
required dynamic cardId, required Object cardId,
required int pn, required int pn,
Object lastMid = 0,
}) async { }) async {
var res = await Request().get( var res = await Request().get(
Api.msgLikeDetail, Api.msgLikeDetail,
queryParameters: { queryParameters: {
'card_id': cardId, 'card_id': cardId,
'pn': pn, 'pn': pn,
'last_view_at': 0, 'last_mid': lastMid,
'platform': 'web', 'platform': 'web',
'build': 0, 'build': 0,
'mobi_app': 'web', 'mobi_app': 'web',

View File

@@ -8,12 +8,19 @@ import 'package:get/get.dart';
class LikeDetailController class LikeDetailController
extends CommonListController<MsgLikeDetailData, MsgLikeDetailItem> { extends CommonListController<MsgLikeDetailData, MsgLikeDetailItem> {
final cardId = Get.parameters['id']; late final String cardId;
final uri = Get.parameters['uri']; late final String? uri;
late final int counts;
int lastMid = 0;
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
final args = Get.arguments;
cardId = args['id'];
uri = args['uri'];
counts = args['counts'];
queryData(); queryData();
} }
@@ -21,17 +28,28 @@ class LikeDetailController
@override @override
List<MsgLikeDetailItem>? getDataList(MsgLikeDetailData response) { List<MsgLikeDetailItem>? getDataList(MsgLikeDetailData response) {
if (response.page?.isEnd == true) { card = response.card;
final items = response.items;
if (items?.lastOrNull?.user?.mid case final mid?) {
lastMid = mid;
}
return items;
}
@override
void checkIsEnd(int length) {
if (length >= counts) {
isEnd = true; isEnd = true;
} }
card = response.card; }
return response.items;
@override
Future<void> onRefresh() {
lastMid = 0;
return super.onRefresh();
} }
@override @override
Future<LoadingState<MsgLikeDetailData>> customGetData() => Future<LoadingState<MsgLikeDetailData>> customGetData() =>
MsgHttp.msgLikeDetail( MsgHttp.msgLikeDetail(cardId: cardId, pn: page, lastMid: lastMid);
cardId: cardId,
pn: page,
);
} }

View File

@@ -170,9 +170,10 @@ class _LikeMePageState extends State<LikeMePage> {
if (item.counts! > 1) { if (item.counts! > 1) {
Get.toNamed( Get.toNamed(
'msgLikeDetail', 'msgLikeDetail',
parameters: { arguments: {
'id': item.id!.toString(), 'id': item.id!.toString(),
if (!isInvalid) 'uri': nativeUri, if (!isInvalid) 'uri': nativeUri,
'counts': item.counts,
}, },
); );
return; return;