External files, improve page generation

This commit is contained in:
Christoph Hagen
2024-12-10 15:21:28 +01:00
parent 8183bc4903
commit efc9234917
50 changed files with 1069 additions and 424 deletions

View File

@ -34,6 +34,7 @@ struct AddFileView: View {
HStack {
Button("Cancel", role: .cancel) { dismiss() }
Button("Select more files", action: openFilePanel)
Button("Add placeholder", action: addPlaceholderFile)
Button("Add selected", action: importSelectedFiles)
.disabled(filesToAdd.isEmpty)
}
@ -68,6 +69,11 @@ struct AddFileView: View {
}
}
private func addPlaceholderFile() {
let newFile = FileToAdd(content: content, externalFile: "placeholder")
filesToAdd.append(newFile)
}
private func delete(file: FileToAdd) {
guard let index = filesToAdd.firstIndex(of: file) else {
return
@ -85,16 +91,19 @@ struct AddFileView: View {
print("Skipping existing file \(file.uniqueId)")
continue
}
do {
try content.storage.copyFile(at: file.url, fileId: file.uniqueId)
} catch {
print("Failed to import file '\(file.uniqueId)' at \(file.url.path()): \(error)")
return
if let url = file.url {
do {
try content.storage.copyFile(at: url, fileId: file.uniqueId)
} catch {
print("Failed to import file '\(file.uniqueId)' at \(url.path()): \(error)")
return
}
}
let resource = FileResource(
content: content,
id: file.uniqueId,
isExternallyStored: file.url == nil,
en: "", de: "")
// TODO: Insert at correct index?
content.files.insert(resource, at: 0)