diff --git a/b0esche_cloud/lib/pages/document_viewer.dart b/b0esche_cloud/lib/pages/document_viewer.dart index 0491e0d..b3cc532 100644 --- a/b0esche_cloud/lib/pages/document_viewer.dart +++ b/b0esche_cloud/lib/pages/document_viewer.dart @@ -12,6 +12,7 @@ import '../blocs/session/session_state.dart'; import '../services/file_service.dart'; import '../injection.dart'; import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart'; +import 'package:syncfusion_flutter_core/theme.dart'; import 'package:go_router/go_router.dart'; import 'package:http/http.dart' as http; import 'package:url_launcher/url_launcher.dart'; @@ -200,15 +201,25 @@ class _DocumentViewerModalState extends State { if (state is DocumentViewerReady) { // Handle different file types based on MIME type if (state.caps.isPdf) { - // PDF viewer using SfPdfViewer - return SfPdfViewer.network( - state.viewUrl.toString(), - headers: {'Authorization': 'Bearer ${state.token}'}, - onDocumentLoadFailed: (details) {}, - onDocumentLoaded: (PdfDocumentLoadedDetails details) {}, - canShowHyperlinkDialog: false, - onHyperlinkClicked: (details) => - _handleHyperlink(details.uri), + // PDF viewer using SfPdfViewer, wrapped in SfTheme for custom accent color + return SfTheme( + data: SfThemeData( + pdfViewerThemeData: SfPdfViewerThemeData( + backgroundColor: AppTheme.primaryBackground, + scrollHeadStyle: PdfScrollHeadStyle( + backgroundColor: AppTheme.accentColor, + ), + ), + ), + child: SfPdfViewer.network( + state.viewUrl.toString(), + headers: {'Authorization': 'Bearer ${state.token}'}, + onDocumentLoadFailed: (details) {}, + onDocumentLoaded: (PdfDocumentLoadedDetails details) {}, + canShowHyperlinkDialog: false, + onHyperlinkClicked: (details) => + _handleHyperlink(details.uri), + ), ); } else if (state.caps.isImage) { // Image viewer @@ -787,18 +798,28 @@ class _DocumentViewerState extends State { } if (state.caps.isPdf) { - // PDF viewer using SfPdfViewer - return SfPdfViewer.network( - state.viewUrl.toString(), - headers: token != null - ? {'Authorization': 'Bearer $token'} - : {}, - onDocumentLoadFailed: (details) {}, - onDocumentLoaded: (PdfDocumentLoadedDetails details) {}, - canShowHyperlinkDialog: false, - enableHyperlinkNavigation: false, - onHyperlinkClicked: (details) => - _handleHyperlink(details.uri), + // PDF viewer using SfPdfViewer, wrapped in SfTheme for custom accent color + return SfTheme( + data: SfThemeData( + pdfViewerThemeData: SfPdfViewerThemeData( + backgroundColor: AppTheme.primaryBackground, + scrollHeadStyle: PdfScrollHeadStyle( + backgroundColor: AppTheme.accentColor, + ), + ), + ), + child: SfPdfViewer.network( + state.viewUrl.toString(), + headers: token != null + ? {'Authorization': 'Bearer $token'} + : {}, + onDocumentLoadFailed: (details) {}, + onDocumentLoaded: (PdfDocumentLoadedDetails details) {}, + canShowHyperlinkDialog: false, + enableHyperlinkNavigation: false, + onHyperlinkClicked: (details) => + _handleHyperlink(details.uri), + ), ); } else if (state.caps.isImage) { // Image viewer diff --git a/b0esche_cloud/pubspec.lock b/b0esche_cloud/pubspec.lock index 9984504..55b71df 100644 --- a/b0esche_cloud/pubspec.lock +++ b/b0esche_cloud/pubspec.lock @@ -1230,7 +1230,7 @@ packages: source: hosted version: "0.9.1" syncfusion_flutter_core: - dependency: transitive + dependency: "direct main" description: name: syncfusion_flutter_core sha256: e1fdfcc3ed7e1f040ba95838780b2eb1857e3e5eccb817fbe94ea2b09c35eac4 diff --git a/b0esche_cloud/pubspec.yaml b/b0esche_cloud/pubspec.yaml index 02465bd..3908a54 100644 --- a/b0esche_cloud/pubspec.yaml +++ b/b0esche_cloud/pubspec.yaml @@ -62,6 +62,7 @@ dependencies: # Video Playback video_player: ^2.8.2 + syncfusion_flutter_core: ^31.2.18 dev_dependencies: flutter_test: