💄 Optimized article attachments displaying strategy

This commit is contained in:
LittleSheep 2025-01-05 13:34:37 +08:00
parent bcb176344c
commit c403a2914a
4 changed files with 9 additions and 10 deletions

View File

@ -83,7 +83,6 @@ class ChatMessageController extends ChangeNotifier {
if (member.id == profile?.id) break; if (member.id == profile?.id) break;
if (!typingMembers.any((x) => x.id == member.id)) { if (!typingMembers.any((x) => x.id == member.id)) {
typingMembers.add(member); typingMembers.add(member);
print('Typing member: ${typingMembers.map((ele) => member.id)}');
notifyListeners(); notifyListeners();
} }
typingInactiveTimer[member.id]?.cancel(); typingInactiveTimer[member.id]?.cancel();

View File

@ -35,7 +35,7 @@ class WebSocketProvider extends ChangeNotifier {
Future<void> connect({noRetry = false}) async { Future<void> connect({noRetry = false}) async {
if (!_ua.isAuthorized) return; if (!_ua.isAuthorized) return;
if (isConnected) { if (isConnected || conn != null) {
disconnect(); disconnect();
} }
@ -97,7 +97,7 @@ class WebSocketProvider extends ChangeNotifier {
onError: (err) { onError: (err) {
isConnected = false; isConnected = false;
notifyListeners(); notifyListeners();
Future.delayed(const Duration(seconds: 11), () => connect()); Future.delayed(const Duration(seconds: 1), () => connect());
}, },
); );
} }

View File

@ -1,5 +1,3 @@
import 'dart:ui';
import 'package:dismissible_page/dismissible_page.dart'; import 'package:dismissible_page/dismissible_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:flutter_markdown/flutter_markdown.dart';
@ -7,15 +5,12 @@ import 'package:go_router/go_router.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:markdown/markdown.dart' as markdown; import 'package:markdown/markdown.dart' as markdown;
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:styled_widget/styled_widget.dart';
import 'package:surface/providers/sn_network.dart'; import 'package:surface/providers/sn_network.dart';
import 'package:surface/providers/sn_sticker.dart'; import 'package:surface/providers/sn_sticker.dart';
import 'package:surface/types/attachment.dart'; import 'package:surface/types/attachment.dart';
import 'package:surface/widgets/attachment/attachment_item.dart'; import 'package:surface/widgets/attachment/attachment_item.dart';
import 'package:surface/widgets/universal_image.dart'; import 'package:surface/widgets/universal_image.dart';
import 'package:syntax_highlight/syntax_highlight.dart';
import 'package:url_launcher/url_launcher_string.dart'; import 'package:url_launcher/url_launcher_string.dart';
import 'package:path/path.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
import 'attachment/attachment_zoom.dart'; import 'attachment/attachment_zoom.dart';

View File

@ -20,6 +20,7 @@ import 'package:styled_widget/styled_widget.dart';
import 'package:surface/providers/config.dart'; import 'package:surface/providers/config.dart';
import 'package:surface/providers/sn_network.dart'; import 'package:surface/providers/sn_network.dart';
import 'package:surface/providers/userinfo.dart'; import 'package:surface/providers/userinfo.dart';
import 'package:surface/types/attachment.dart';
import 'package:surface/types/post.dart'; import 'package:surface/types/post.dart';
import 'package:surface/types/reaction.dart'; import 'package:surface/types/reaction.dart';
import 'package:surface/widgets/account/account_image.dart'; import 'package:surface/widgets/account/account_image.dart';
@ -198,6 +199,10 @@ class PostItem extends StatelessWidget {
).center(); ).center();
} }
final displayableAttachments = data.preload?.attachments
?.where((ele) => ele?.mediaType != SnMediaType.image || data.type != 'article')
.toList();
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
@ -247,9 +252,9 @@ class PostItem extends StatelessWidget {
], ],
), ),
), ),
if ((data.preload?.attachments?.isNotEmpty ?? false) && data.type != 'article') if (displayableAttachments?.isNotEmpty ?? false)
AttachmentList( AttachmentList(
data: data.preload!.attachments!, data: displayableAttachments!,
bordered: true, bordered: true,
gridded: true, gridded: true,
maxHeight: showFullPost ? null : 480, maxHeight: showFullPost ? null : 480,