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 '../services/file_service.dart';
|
||||||
import '../injection.dart';
|
import '../injection.dart';
|
||||||
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';
|
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';
|
||||||
|
import 'package:syncfusion_flutter_core/theme.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
@@ -200,8 +201,17 @@ class _DocumentViewerModalState extends State<DocumentViewerModal> {
|
|||||||
if (state is DocumentViewerReady) {
|
if (state is DocumentViewerReady) {
|
||||||
// Handle different file types based on MIME type
|
// Handle different file types based on MIME type
|
||||||
if (state.caps.isPdf) {
|
if (state.caps.isPdf) {
|
||||||
// PDF viewer using SfPdfViewer
|
// PDF viewer using SfPdfViewer, wrapped in SfTheme for custom accent color
|
||||||
return SfPdfViewer.network(
|
return SfTheme(
|
||||||
|
data: SfThemeData(
|
||||||
|
pdfViewerThemeData: SfPdfViewerThemeData(
|
||||||
|
backgroundColor: AppTheme.primaryBackground,
|
||||||
|
scrollHeadStyle: PdfScrollHeadStyle(
|
||||||
|
backgroundColor: AppTheme.accentColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: SfPdfViewer.network(
|
||||||
state.viewUrl.toString(),
|
state.viewUrl.toString(),
|
||||||
headers: {'Authorization': 'Bearer ${state.token}'},
|
headers: {'Authorization': 'Bearer ${state.token}'},
|
||||||
onDocumentLoadFailed: (details) {},
|
onDocumentLoadFailed: (details) {},
|
||||||
@@ -209,6 +219,7 @@ class _DocumentViewerModalState extends State<DocumentViewerModal> {
|
|||||||
canShowHyperlinkDialog: false,
|
canShowHyperlinkDialog: false,
|
||||||
onHyperlinkClicked: (details) =>
|
onHyperlinkClicked: (details) =>
|
||||||
_handleHyperlink(details.uri),
|
_handleHyperlink(details.uri),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
} else if (state.caps.isImage) {
|
} else if (state.caps.isImage) {
|
||||||
// Image viewer
|
// Image viewer
|
||||||
@@ -787,8 +798,17 @@ class _DocumentViewerState extends State<DocumentViewer> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (state.caps.isPdf) {
|
if (state.caps.isPdf) {
|
||||||
// PDF viewer using SfPdfViewer
|
// PDF viewer using SfPdfViewer, wrapped in SfTheme for custom accent color
|
||||||
return SfPdfViewer.network(
|
return SfTheme(
|
||||||
|
data: SfThemeData(
|
||||||
|
pdfViewerThemeData: SfPdfViewerThemeData(
|
||||||
|
backgroundColor: AppTheme.primaryBackground,
|
||||||
|
scrollHeadStyle: PdfScrollHeadStyle(
|
||||||
|
backgroundColor: AppTheme.accentColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: SfPdfViewer.network(
|
||||||
state.viewUrl.toString(),
|
state.viewUrl.toString(),
|
||||||
headers: token != null
|
headers: token != null
|
||||||
? {'Authorization': 'Bearer $token'}
|
? {'Authorization': 'Bearer $token'}
|
||||||
@@ -799,6 +819,7 @@ class _DocumentViewerState extends State<DocumentViewer> {
|
|||||||
enableHyperlinkNavigation: false,
|
enableHyperlinkNavigation: false,
|
||||||
onHyperlinkClicked: (details) =>
|
onHyperlinkClicked: (details) =>
|
||||||
_handleHyperlink(details.uri),
|
_handleHyperlink(details.uri),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
} else if (state.caps.isImage) {
|
} else if (state.caps.isImage) {
|
||||||
// Image viewer
|
// Image viewer
|
||||||
|
|||||||
@@ -1230,7 +1230,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "0.9.1"
|
version: "0.9.1"
|
||||||
syncfusion_flutter_core:
|
syncfusion_flutter_core:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: syncfusion_flutter_core
|
name: syncfusion_flutter_core
|
||||||
sha256: e1fdfcc3ed7e1f040ba95838780b2eb1857e3e5eccb817fbe94ea2b09c35eac4
|
sha256: e1fdfcc3ed7e1f040ba95838780b2eb1857e3e5eccb817fbe94ea2b09c35eac4
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ dependencies:
|
|||||||
|
|
||||||
# Video Playback
|
# Video Playback
|
||||||
video_player: ^2.8.2
|
video_player: ^2.8.2
|
||||||
|
syncfusion_flutter_core: ^31.2.18
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
Reference in New Issue
Block a user