diff --git a/lib/features/chat/document_viewer.dart b/lib/features/chat/document_viewer.dart index 98b9d70..ea0cf22 100644 --- a/lib/features/chat/document_viewer.dart +++ b/lib/features/chat/document_viewer.dart @@ -6,7 +6,7 @@ import 'package:archive/archive.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_markdown/flutter_markdown.dart'; +import 'package:flutter_markdown_plus/flutter_markdown_plus.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:pdfx/pdfx.dart'; diff --git a/pubspec.lock b/pubspec.lock index 870118d..9a7fcde 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -400,14 +400,14 @@ packages: description: flutter source: sdk version: "0.0.0" - flutter_markdown: + flutter_markdown_plus: dependency: "direct main" description: - name: flutter_markdown - sha256: "08fb8315236099ff8e90cb87bb2b935e0a724a3af1623000a9cec930468e0f27" + name: flutter_markdown_plus + sha256: fce641d6c2106cc495de1cd603f97a4f9d615a97a64011928ded380dbdade935 url: "https://pub.dev" source: hosted - version: "0.7.7+1" + version: "1.0.12" flutter_plugin_android_lifecycle: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index e77226e..c5cfce5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -67,7 +67,7 @@ dependencies: # Document viewer pdfx: ^2.7.0 archive: ^4.0.0 - flutter_markdown: ^0.7.7 + flutter_markdown_plus: ^1.0.3 # Clipboard image paste (Windows FFI) & image decoding ffi: ^2.1.0 diff --git a/test/document_markdown_test.dart b/test/document_markdown_test.dart new file mode 100644 index 0000000..279fbea --- /dev/null +++ b/test/document_markdown_test.dart @@ -0,0 +1,42 @@ +import 'dart:convert'; +import 'dart:typed_data'; + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:pyramid/core/theme.dart'; +import 'package:pyramid/features/chat/document_viewer.dart'; + +/// Markdown-Vorschau (seit 2026-10-07 mit flutter_markdown_plus statt dem +/// eingestellten flutter_markdown): Überschrift, Liste, Code und Link werden +/// gezeichnet. +void main() { + testWidgets('Markdown-Datei wird in der Vorschau dargestellt', ( + tester, + ) async { + const md = '# Einkaufsliste\n\n' + '- **Milch**\n- _Brot_\n\n' + '`code` und [ein Link](https://example.org)\n\n' + '> Zitat\n'; + await tester.pumpWidget( + PyramidTheme( + child: MaterialApp( + home: DocumentViewer( + filename: 'notizen.md', + bytes: Uint8List.fromList(utf8.encode(md)), + senderName: 'Test', + ), + ), + ), + ); + await tester.pumpAndSettle(); + + expect(tester.takeException(), isNull); + // Auswählbarer Text (SelectableText → EditableText) oder RichText. + bool shows(String text) => + find.textContaining(text, findRichText: true).evaluate().isNotEmpty; + expect(shows('Einkaufsliste'), isTrue); + expect(shows('Milch'), isTrue); + expect(shows('ein Link'), isTrue); + expect(shows('Zitat'), isTrue); + }); +}