diff options
| author | Fuwn <[email protected]> | 2025-02-22 00:07:44 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-22 00:07:44 -0800 |
| commit | e42fa12dafe264c665d2574c93b54ddafe7f2e1f (patch) | |
| tree | a362b3b78ea97dc28ce5cc3682801bf89688f546 /Sora/Data/Settings/Settings.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-e42fa12dafe264c665d2574c93b54ddafe7f2e1f.tar.xz sora-testing-e42fa12dafe264c665d2574c93b54ddafe7f2e1f.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Data/Settings/Settings.swift')
| -rw-r--r-- | Sora/Data/Settings/Settings.swift | 120 |
1 files changed, 60 insertions, 60 deletions
diff --git a/Sora/Data/Settings/Settings.swift b/Sora/Data/Settings/Settings.swift index c70f1ba..efac028 100644 --- a/Sora/Data/Settings/Settings.swift +++ b/Sora/Data/Settings/Settings.swift @@ -1,81 +1,81 @@ import SwiftUI class Settings: ObservableObject { - #if DEBUG - @AppStorage("detailViewType") var detailViewType: BooruPostFileType = .sample - #else - @AppStorage("detailViewType") var detailViewType: BooruPostFileType = .original - #endif - @AppStorage("thumbnailType") var thumbnailType: BooruPostFileType = .preview - @AppStorage("searchSuggestions") var searchSuggestions: Bool = false - @AppStorage("columns") var columns: Int = 2 - @AppStorage("blurNSFWThumbnails") var blurNSFWThumbnails: Bool = true - @AppStorage("showNSFWPosts") var showNSFWPosts: Bool = false - @AppStorage("bookmarks") private var bookmarksData: Data = .init() - @AppStorage("preferredBooru") var preferredBooru: BooruProvider = .yandere - - var bookmarks: [Bookmark] { - get { - if let bookmarks = try? JSONDecoder().decode([Bookmark].self, from: bookmarksData) { - return bookmarks - } - - return [] - } - - set { - if let data = try? JSONEncoder().encode(newValue) { - bookmarksData = data - } - } + #if DEBUG + @AppStorage("detailViewType") var detailViewType: BooruPostFileType = .sample + #else + @AppStorage("detailViewType") var detailViewType: BooruPostFileType = .original + #endif + @AppStorage("thumbnailType") var thumbnailType: BooruPostFileType = .preview + @AppStorage("searchSuggestions") var searchSuggestions: Bool = false + @AppStorage("columns") var columns: Int = 2 + @AppStorage("blurNSFWThumbnails") var blurNSFWThumbnails: Bool = true + @AppStorage("showNSFWPosts") var showNSFWPosts: Bool = false + @AppStorage("bookmarks") private var bookmarksData: Data = .init() + @AppStorage("preferredBooru") var preferredBooru: BooruProvider = .yandere + + var bookmarks: [Bookmark] { + get { + if let bookmarks = try? JSONDecoder().decode([Bookmark].self, from: bookmarksData) { + return bookmarks + } + + return [] } - func resetToDefaults() { - #if DEBUG - detailViewType = .preview - #else - detailViewType = .original - #endif - thumbnailType = .preview - searchSuggestions = false - columns = 2 - blurNSFWThumbnails = true - showNSFWPosts = false + set { + if let data = try? JSONEncoder().encode(newValue) { + bookmarksData = data + } } + } - func addBookmark(provider: BooruProvider, tags: [String]) { - var currentBookmarks = bookmarks + func resetToDefaults() { + #if DEBUG + detailViewType = .preview + #else + detailViewType = .original + #endif + thumbnailType = .preview + searchSuggestions = false + columns = 2 + blurNSFWThumbnails = true + showNSFWPosts = false + } - currentBookmarks.append(Bookmark(provider: provider, tags: tags.map { $0.lowercased() })) + func addBookmark(provider: BooruProvider, tags: [String]) { + var currentBookmarks = bookmarks - bookmarks = currentBookmarks - } + currentBookmarks.append(Bookmark(provider: provider, tags: tags.map { $0.lowercased() })) - func removeBookmark(at index: IndexSet) { - var currentBookmarks = bookmarks + bookmarks = currentBookmarks + } - currentBookmarks.remove(atOffsets: index) + func removeBookmark(at index: IndexSet) { + var currentBookmarks = bookmarks - bookmarks = currentBookmarks - } + currentBookmarks.remove(atOffsets: index) - func removeBookmark(withTags tags: [String]) { - var currentBookmarks = bookmarks + bookmarks = currentBookmarks + } - currentBookmarks.removeAll { bookmark in - bookmark.tags.contains(where: tags.contains) - } + func removeBookmark(withTags tags: [String]) { + var currentBookmarks = bookmarks - bookmarks = currentBookmarks + currentBookmarks.removeAll { bookmark in + bookmark.tags.contains(where: tags.contains) } - func removeBookmark(withID: UUID) { - var currentBookmarks = bookmarks + bookmarks = currentBookmarks + } - currentBookmarks.removeAll { bookmark in - bookmark.id == withID - } + func removeBookmark(withID: UUID) { + var currentBookmarks = bookmarks - bookmarks = currentBookmarks + currentBookmarks.removeAll { bookmark in + bookmark.id == withID } + + bookmarks = currentBookmarks + } } |