diff --git a/lib/http/msg.dart b/lib/http/msg.dart index 1ea4dbaab..592887093 100644 --- a/lib/http/msg.dart +++ b/lib/http/msg.dart @@ -86,15 +86,16 @@ class MsgHttp { } static Future> msgLikeDetail({ - required dynamic cardId, + required Object cardId, required int pn, + Object lastMid = 0, }) async { var res = await Request().get( Api.msgLikeDetail, queryParameters: { 'card_id': cardId, 'pn': pn, - 'last_view_at': 0, + 'last_mid': lastMid, 'platform': 'web', 'build': 0, 'mobi_app': 'web', diff --git a/lib/pages/msg_feed_top/like_detail/controller.dart b/lib/pages/msg_feed_top/like_detail/controller.dart index b1f414981..05f5d5616 100644 --- a/lib/pages/msg_feed_top/like_detail/controller.dart +++ b/lib/pages/msg_feed_top/like_detail/controller.dart @@ -8,12 +8,19 @@ import 'package:get/get.dart'; class LikeDetailController extends CommonListController { - final cardId = Get.parameters['id']; - final uri = Get.parameters['uri']; + late final String cardId; + late final String? uri; + late final int counts; + + int lastMid = 0; @override void onInit() { super.onInit(); + final args = Get.arguments; + cardId = args['id']; + uri = args['uri']; + counts = args['counts']; queryData(); } @@ -21,17 +28,28 @@ class LikeDetailController @override List? 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; } - card = response.card; - return response.items; + } + + @override + Future onRefresh() { + lastMid = 0; + return super.onRefresh(); } @override Future> customGetData() => - MsgHttp.msgLikeDetail( - cardId: cardId, - pn: page, - ); + MsgHttp.msgLikeDetail(cardId: cardId, pn: page, lastMid: lastMid); } diff --git a/lib/pages/msg_feed_top/like_me/view.dart b/lib/pages/msg_feed_top/like_me/view.dart index 2e469afd1..b754cc364 100644 --- a/lib/pages/msg_feed_top/like_me/view.dart +++ b/lib/pages/msg_feed_top/like_me/view.dart @@ -170,9 +170,10 @@ class _LikeMePageState extends State { if (item.counts! > 1) { Get.toNamed( 'msgLikeDetail', - parameters: { + arguments: { 'id': item.id!.toString(), if (!isInvalid) 'uri': nativeUri, + 'counts': item.counts, }, ); return;