Add SfTheme wrapper for PDF viewer and update syncfusion_flutter_core dependency
This commit is contained in:
@@ -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<DocumentViewerModal> {
|
||||
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<DocumentViewer> {
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -62,6 +62,7 @@ dependencies:
|
||||
|
||||
# Video Playback
|
||||
video_player: ^2.8.2
|
||||
syncfusion_flutter_core: ^31.2.18
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
Reference in New Issue
Block a user