mod: reply ctr

This commit is contained in:
bggRGjQaUbCoE
2024-10-12 10:59:41 +08:00
parent 6e7e815710
commit 98512a7275
11 changed files with 95 additions and 136 deletions

View File

@@ -1,8 +1,10 @@
import 'package:PiliPalaX/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/pages/common/reply_controller.dart';
import 'package:get/get.dart';
import 'package:PiliPalaX/http/html.dart';
import 'package:PiliPalaX/http/reply.dart';
import 'package:fixnum/fixnum.dart' as $fixnum;
class HtmlRenderController extends ReplyController {
late String id;
@@ -42,13 +44,23 @@ class HtmlRenderController extends ReplyController {
}
}
// @override
// Future<LoadingState> customGetData() => ReplyHttp.replyList(
// isLogin: isLogin,
// oid: oid.value,
// nextOffset: nextOffset,
// type: type,
// sort: sortType.index,
// page: currentPage,
// );
@override
Future<LoadingState> customGetData() => ReplyHttp.replyList(
isLogin: isLogin,
oid: oid.value,
nextOffset: nextOffset,
Future<LoadingState> customGetData() => ReplyHttp.replyListGrpc(
type: type,
sort: sortType.index,
page: currentPage,
oid: oid.value,
cursor: CursorReq(
next: cursor?.next ?? $fixnum.Int64(0),
mode: mode,
),
);
}

View File

@@ -3,6 +3,7 @@ import 'dart:math';
import 'package:PiliPalaX/common/widgets/article_content.dart';
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/pages/video/detail/reply/widgets/reply_item_grpc.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
@@ -108,20 +109,21 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
}
}
void replyReply(replyItem) {
int oid = replyItem.oid;
int rpid = replyItem.rpid!;
void replyReply(replyItem, id) {
int oid = replyItem.oid.toInt();
int rpid = replyItem.id.toInt();
Get.to(
() => Scaffold(
appBar: AppBar(
titleSpacing: 0,
centerTitle: false,
title: Text(
'评论详情${replyItem.rcount > 0 ? '${replyItem.rcount}' : ''}',
'评论详情',
style: Theme.of(context).textTheme.titleMedium,
),
),
body: VideoReplyReplyPanel(
id: id,
oid: oid,
rpid: rpid,
source: 'dynamic',
@@ -330,9 +332,9 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
Widget replyList(LoadingState loadingState) {
return loadingState is Success
? SliverList.builder(
itemCount: loadingState.response.length + 1,
itemCount: loadingState.response.replies.length + 1,
itemBuilder: (context, index) {
if (index == loadingState.response.length) {
if (index == loadingState.response.replies.length) {
return Container(
padding: EdgeInsets.only(
bottom: MediaQuery.of(context).padding.bottom),
@@ -350,8 +352,8 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
),
);
} else {
return ReplyItem(
replyItem: loadingState.response[index],
return ReplyItemGrpc(
replyItem: loadingState.response.replies[index],
showReplyRow: true,
replyLevel: '1',
replyReply: replyReply,
@@ -359,11 +361,13 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
onReply: () {
_htmlRenderCtr.onReply(
context,
replyItem: loadingState.response[index],
replyItem: loadingState.response.replies[index],
index: index,
);
},
onDelete: _htmlRenderCtr.onMDelete,
isTop: _htmlRenderCtr.hasUpTop && index == 0,
upMid: loadingState.response.subjectControl.upMid,
);
}
},