Add upload, preview sheet

This commit is contained in:
Christoph Hagen
2025-02-15 01:02:25 +01:00
parent 0753d91f29
commit 2cad27b504
14 changed files with 358 additions and 115 deletions

View File

@ -63,7 +63,10 @@ final class Content: ObservableObject {
storage: storage,
settings: settings)
storage.errorNotification = { [weak self] error in
self?.storageErrors.append(error)
guard let self else { return }
DispatchQueue.main.async {
self.storageErrors.append(error)
}
}
settings.content = self
}

View File

@ -11,10 +11,22 @@ final class GeneralSettings: ObservableObject {
@Published
var linkPreviewImageHeight: Int
init(url: String, linkPreviewImageWidth: Int, linkPreviewImageHeight: Int) {
@Published
var remoteUserForUpload: String
@Published
var remotePortForUpload: Int
@Published
var remotePathForUpload: String
init(url: String, linkPreviewImageWidth: Int, linkPreviewImageHeight: Int, remoteUserForUpload: String, remotePortForUpload: Int, remotePathForUpload: String) {
self.url = url
self.linkPreviewImageWidth = linkPreviewImageWidth
self.linkPreviewImageHeight = linkPreviewImageHeight
self.remoteUserForUpload = remoteUserForUpload
self.remotePortForUpload = remotePortForUpload
self.remotePathForUpload = remotePathForUpload
}
}
@ -24,19 +36,28 @@ extension GeneralSettings {
self.init(
url: data.url,
linkPreviewImageWidth: data.linkPreviewImageWidth,
linkPreviewImageHeight: data.linkPreviewImageHeight)
linkPreviewImageHeight: data.linkPreviewImageHeight,
remoteUserForUpload: data.remoteUserForUpload,
remotePortForUpload: data.remotePortForUpload,
remotePathForUpload: data.remotePathForUpload)
}
var data: Data {
.init(
url: url,
linkPreviewImageWidth: linkPreviewImageWidth,
linkPreviewImageHeight: linkPreviewImageHeight)
linkPreviewImageHeight: linkPreviewImageHeight,
remoteUserForUpload: remoteUserForUpload,
remotePortForUpload: remotePortForUpload,
remotePathForUpload: remotePathForUpload)
}
struct Data: Codable, Equatable {
let url: String
let linkPreviewImageWidth: Int
let linkPreviewImageHeight: Int
let remoteUserForUpload: String
let remotePortForUpload: Int
let remotePathForUpload: String
}
}

View File

@ -108,7 +108,10 @@ extension GeneralSettings {
static let `default`: GeneralSettings = .init(
url: "https://example.com",
linkPreviewImageWidth: 1200,
linkPreviewImageHeight: 630)
linkPreviewImageHeight: 630,
remoteUserForUpload: "user",
remotePortForUpload: 22,
remotePathForUpload: "/home/user/web")
}
extension AudioPlayerSettings {