⬆️ Support latest version of server

This commit is contained in:
2024-07-23 18:09:41 +08:00
parent 3545a0737d
commit e91b4b0947
26 changed files with 88 additions and 1277 deletions

View File

@ -173,8 +173,8 @@ class _PostDeletionDialogState extends State<PostDeletionDialog> {
return AlertDialog(
title: Text('postDeletionConfirm'.tr),
content: Text('postDeletionConfirmCaption'.trParams({
'content': widget.item.content
.substring(0, min(widget.item.content.length, 60))
'content': widget.item.body['content']
.substring(0, min<int>(widget.item.body['content'].length, 60))
.trim(),
})),
actions: <Widget>[

View File

@ -86,7 +86,7 @@ class _PostItemState extends State<PostItem> {
}
if (widget.item.realm != null) {
labels.add('postInRealm'.trParams({
'realm': '#${widget.item.realm!.alias}',
'realm': '#${widget.item.realm!.id}',
}));
}
@ -141,7 +141,7 @@ class _PostItemState extends State<PostItem> {
child: PostItem(
item: widget.item.replyTo!,
isCompact: true,
overrideAttachmentParent: widget.item.alias,
overrideAttachmentParent: widget.item.id.toString(),
).paddingSymmetric(vertical: 8),
),
],
@ -173,7 +173,7 @@ class _PostItemState extends State<PostItem> {
child: PostItem(
item: widget.item.repostTo!,
isCompact: true,
overrideAttachmentParent: widget.item.alias,
overrideAttachmentParent: widget.item.id.toString(),
).paddingSymmetric(vertical: 8),
),
],
@ -182,7 +182,7 @@ class _PostItemState extends State<PostItem> {
@override
Widget build(BuildContext context) {
final hasAttachment = item.attachments?.isNotEmpty ?? false;
final hasAttachment = item.body['attachments']?.isNotEmpty ?? false;
if (widget.isCompact) {
return Column(
@ -190,7 +190,7 @@ class _PostItemState extends State<PostItem> {
children: [
buildHeader().paddingSymmetric(horizontal: 12),
MarkdownTextContent(
content: item.content,
content: item.body['content'],
isSelectable: widget.isContentSelectable,
).paddingOnly(
left: 16,
@ -199,7 +199,7 @@ class _PostItemState extends State<PostItem> {
bottom: hasAttachment ? 4 : 0,
),
buildFooter().paddingOnly(left: 16),
if (item.attachments?.isNotEmpty ?? false)
if (item.body['attachments']?.isNotEmpty ?? false)
Row(
children: [
Icon(
@ -209,7 +209,7 @@ class _PostItemState extends State<PostItem> {
).paddingOnly(right: 6),
Text(
'postAttachmentTip'.trParams(
{'count': item.attachments!.length.toString()},
{'count': item.body['attachments']!.length.toString()},
),
style: TextStyle(color: _unFocusColor),
)
@ -245,7 +245,7 @@ class _PostItemState extends State<PostItem> {
children: [
buildHeader(),
MarkdownTextContent(
content: item.content,
content: item.body['content'],
isSelectable: widget.isContentSelectable,
).paddingOnly(left: 12, right: 8),
if (widget.item.replyTo != null && widget.isShowEmbed)
@ -256,7 +256,7 @@ class _PostItemState extends State<PostItem> {
AppRouter.instance.pushNamed(
'postDetail',
pathParameters: {
'alias': widget.item.replyTo!.alias,
'id': widget.item.replyTo!.id.toString(),
},
);
},
@ -269,7 +269,7 @@ class _PostItemState extends State<PostItem> {
AppRouter.instance.pushNamed(
'postDetail',
pathParameters: {
'alias': widget.item.repostTo!.alias,
'alias': widget.item.repostTo!.id.toString(),
},
);
},
@ -292,8 +292,8 @@ class _PostItemState extends State<PostItem> {
maxWidth: 640,
),
child: AttachmentList(
parentId: widget.item.alias,
attachmentsId: item.attachments ?? List.empty(),
parentId: widget.item.id.toString(),
attachmentsId: item.body['attachments'].cast<int>() ?? List.empty(),
divided: true,
),
),

View File

@ -66,7 +66,7 @@ class PostListEntryWidget extends StatelessWidget {
Widget build(BuildContext context) {
return GestureDetector(
child: PostItem(
key: Key('p${item.alias}'),
key: Key('p${item.id}'),
item: item,
isShowEmbed: isShowEmbed,
isClickable: isNestedClickable,
@ -75,7 +75,7 @@ class PostListEntryWidget extends StatelessWidget {
if (!isClickable) return;
AppRouter.instance.pushNamed(
'postDetail',
pathParameters: {'alias': item.alias},
pathParameters: {'id': item.id.toString()},
);
},
onLongPress: () {

View File

@ -22,7 +22,7 @@ class PostOwnedListEntry extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
PostItem(
key: Key('p${item.alias}'),
key: Key('p${item.id}'),
item: item,
isShowEmbed: false,
isClickable: false,

View File

@ -53,7 +53,7 @@ class _PostQuickActionState extends State<PostQuickAction> {
setState(() => _isSubmitting = true);
final resp = await client.post('/posts/${widget.item.alias}/react', {
final resp = await client.post('/posts/${widget.item.id}/react', {
'symbol': symbol,
'attitude': attitude,
});

View File

@ -3,7 +3,7 @@ import 'package:get/get.dart';
import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';
import 'package:solian/models/pagination.dart';
import 'package:solian/models/post.dart';
import 'package:solian/providers/content/feed.dart';
import 'package:solian/providers/content/posts.dart';
import 'package:solian/widgets/posts/post_list.dart';
class PostReplyList extends StatefulWidget {
@ -23,11 +23,11 @@ class _PostReplyListState extends State<PostReplyList> {
PagingController(firstPageKey: 0);
Future<void> getReplies(int pageKey) async {
final FeedProvider provider = Get.find();
final PostProvider provider = Get.find();
Response resp;
try {
resp = await provider.listPostReplies(widget.item.alias, pageKey);
resp = await provider.listPostReplies(widget.item.id.toString(), pageKey);
} catch (e) {
_pagingController.error = e;
return;