Add images to posts, saving

This commit is contained in:
Christoph Hagen
2024-11-20 23:46:54 +01:00
parent cb22ae34f2
commit a35c2d669e
21 changed files with 415 additions and 149 deletions

View File

@@ -17,7 +17,7 @@ final class Content: ObservableObject {
var images: [ImageResource] = []
@Published
var files: [FileResources] = []
var files: [FileResource] = []
@AppStorage("contentPath")
private var storedContentPath: String = ""
@@ -37,7 +37,7 @@ final class Content: ObservableObject {
pages: [Page] = [],
tags: [Tag] = [],
images: [ImageResource] = [],
files: [FileResources] = [],
files: [FileResource] = [],
storedContentPath: String) {
self.posts = posts
self.pages = pages
@@ -209,13 +209,13 @@ final class Content: ObservableObject {
dict[file] = ImageResource(uniqueId: file, altText: .init(en: "", de: ""), fileUrl: url)
}
let files: [FileResources] = filesData.compactMap { file, url in
let files: [FileResource] = filesData.compactMap { file, url in
let ext = file.components(separatedBy: ".").last!.lowercased()
let type = FileType(fileExtension: ext)
guard type == .file else {
return nil
}
return FileResources(uniqueId: file, description: "")
return FileResource(uniqueId: file, description: "")
}
let posts = postsData.map { postId, post in
@@ -293,6 +293,27 @@ final class Content: ObservableObject {
}
}
// MARK: Saving
func saveToDisk() {
print("Starting save")
for page in pages {
storage.save(pageMetadata: page.pageFile, for: page.id)
}
for post in posts {
storage.save(post: post.postFile, for: post.id)
}
for tag in tags {
storage.save(tagMetadata: tag.tagFile, for: tag.id)
}
// TODO: Remove all files that are no longer in use (they belong to deleted items)
print("Finished save")
}
// MARK: Folder access
static func accessFolderFromBookmark(key: String, operation: (URL) -> Void) {
guard let bookmarkData = UserDefaults.standard.data(forKey: key) else {
print("No bookmark data to access folder")