feat: record reply

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-03-08 11:25:20 +08:00
parent 1e83a23c5c
commit a1f15b5da5
10 changed files with 199 additions and 13 deletions

View File

@@ -29,6 +29,7 @@ import 'package:PiliPlus/utils/feed_back.dart';
import 'package:PiliPlus/utils/image_utils.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/storage_pref.dart';
import 'package:PiliPlus/utils/url_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
@@ -865,6 +866,35 @@ class ReplyItemGrpc extends StatelessWidget {
),
),
),
if (kDebugMode) ...[
ListTile(
onTap: () {
Get.back();
GStorage.reply.put(
item.id.toString(),
(item.toProto3Json() as Map)
..remove('replies')
..remove('memberV2')
..remove('trackInfo'),
);
},
title: Text(
'save to local',
style: style!.copyWith(color: theme.colorScheme.primary),
),
),
ListTile(
onTap: () {
Get.back();
onDelete();
GStorage.reply.delete(item.id.toString());
},
title: Text(
'remove from local',
style: style.copyWith(color: theme.colorScheme.primary),
),
),
],
if (ownerMid == upMid || ownerMid == item.member.mid)
ListTile(
onTap: () async {

View File

@@ -429,8 +429,8 @@ class _ReplyPageState extends CommonRichTextPubPageState<ReplyPage> {
);
if (res case Success(:final response)) {
hasPub = true;
SmartDialog.showToast(response['success_toast']);
Get.back(result: response['reply']);
SmartDialog.showToast('发送成功');
Get.back(result: response);
} else {
res.toast();
}

View File

@@ -6,7 +6,6 @@ import 'package:PiliPlus/pages/common/publish/publish_route.dart';
import 'package:PiliPlus/pages/common/reply_controller.dart';
import 'package:PiliPlus/pages/video/reply_new/view.dart';
import 'package:PiliPlus/utils/id_utils.dart';
import 'package:PiliPlus/utils/request_utils.dart';
import 'package:PiliPlus/utils/storage_pref.dart';
import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart';
import 'package:fixnum/fixnum.dart';
@@ -195,10 +194,9 @@ class VideoReplyReplyController extends ReplyController
},
),
)
.then((res) {
if (res != null) {
.then((replyInfo) {
if (replyInfo is ReplyInfo) {
savedReplies.remove(key);
ReplyInfo replyInfo = RequestUtils.replyCast(res);
count.value += 1;
loadingState