mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-23 03:32:13 -04:00
Fix reference in PrintButton
This commit is contained in:
parent
b4d46e2b1e
commit
293a5142ad
@ -18,10 +18,10 @@ import SwiftUI
|
|||||||
import PDFKit
|
import PDFKit
|
||||||
|
|
||||||
struct PrintButton: View {
|
struct PrintButton: View {
|
||||||
|
@FocusedValue(\.isBrowserURLSet) var isBrowserURLSet
|
||||||
let browser: BrowserViewModel
|
let browser: BrowserViewModel
|
||||||
|
|
||||||
private func dataAndName() async -> (Data, String)? {
|
private static func dataAndName(browser: BrowserViewModel) async -> (Data, String)? {
|
||||||
guard let browserURLName = browser.webView.url?.lastPathComponent else {
|
guard let browserURLName = browser.webView.url?.lastPathComponent else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -31,15 +31,16 @@ struct PrintButton: View {
|
|||||||
return (pdfData, browserURLName)
|
return (pdfData, browserURLName)
|
||||||
}
|
}
|
||||||
|
|
||||||
private func tempFileURL() async -> URL? {
|
private func tempFileURL(browser: BrowserViewModel) async -> URL? {
|
||||||
guard let (pdfData, browserURLName) = await dataAndName() else { return nil }
|
guard let (pdfData, browserURLName) = await Self.dataAndName(browser: browser) else { return nil }
|
||||||
return FileExporter.tempFileFrom(exportData: .init(data: pdfData, fileName: browserURLName))
|
return FileExporter.tempFileFrom(exportData: .init(data: pdfData, fileName: browserURLName))
|
||||||
}
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
Button {
|
Button { [weak browser] in
|
||||||
Task {
|
Task { [weak browser] in
|
||||||
guard let url = await tempFileURL() else { return }
|
guard let browser,
|
||||||
|
let url = await tempFileURL(browser: browser) else { return }
|
||||||
let pdfDoc = PDFDocument(url: url)
|
let pdfDoc = PDFDocument(url: url)
|
||||||
let operation = pdfDoc?.printOperation(for: .shared, scalingMode: .pageScaleToFit, autoRotate: true)
|
let operation = pdfDoc?.printOperation(for: .shared, scalingMode: .pageScaleToFit, autoRotate: true)
|
||||||
operation?.run()
|
operation?.run()
|
||||||
@ -50,7 +51,7 @@ struct PrintButton: View {
|
|||||||
} icon: {
|
} icon: {
|
||||||
Image(systemName: "printer")
|
Image(systemName: "printer")
|
||||||
}
|
}
|
||||||
}.disabled(browser.zimFileName.isEmpty)
|
}.disabled(isBrowserURLSet != true)
|
||||||
.keyboardShortcut("p", modifiers: .command)
|
.keyboardShortcut("p", modifiers: .command)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user