diff options
| author | Fuwn <[email protected]> | 2025-06-25 06:53:00 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-06-25 06:53:00 -0700 |
| commit | 78056fc1fff43b45b1863c7338afd6b1c45486be (patch) | |
| tree | 80d7e50160daf667f0eb3a05381cce05d0d33a52 | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-78056fc1fff43b45b1863c7338afd6b1c45486be.tar.xz sora-testing-78056fc1fff43b45b1863c7338afd6b1c45486be.zip | |
feat: Development commit
| -rw-r--r-- | Localizable.xcstrings | 3 | ||||
| -rw-r--r-- | Sora/Views/Post/Details/PostDetailsImageView.swift | 20 | ||||
| -rw-r--r-- | Sora/Views/Post/Grid/PostGridView.swift | 20 |
3 files changed, 37 insertions, 6 deletions
diff --git a/Localizable.xcstrings b/Localizable.xcstrings index 36cfac8..76b7822 100644 --- a/Localizable.xcstrings +++ b/Localizable.xcstrings @@ -91,6 +91,9 @@ } } }, + "Copy" : { + + }, "Create" : { }, diff --git a/Sora/Views/Post/Details/PostDetailsImageView.swift b/Sora/Views/Post/Details/PostDetailsImageView.swift index 0ab28c4..7d52a51 100644 --- a/Sora/Views/Post/Details/PostDetailsImageView.swift +++ b/Sora/Views/Post/Details/PostDetailsImageView.swift @@ -50,6 +50,26 @@ struct PostDetailsImageView<Placeholder: View>: View { } #endif + Button { + #if os(iOS) + let url = url + + Task(priority: .userInitiated) { + // swiftlint:disable:next legacy_objc_type + if let data = NSData(contentsOf: url ?? URL(string: "")!) { + UIPasteboard.general.image = UIImage(data: data as Data) + } + } + #else + if let url { + NSPasteboard.general.clearContents() + NSPasteboard.general.writeObjects([NSImage(byReferencing: url)]) + } + #endif + } label: { + Label("Copy", systemImage: "doc.on.doc") + } + #if os(macOS) Button { saveImageToPicturesFolder() diff --git a/Sora/Views/Post/Grid/PostGridView.swift b/Sora/Views/Post/Grid/PostGridView.swift index 9eef5f7..4b32c88 100644 --- a/Sora/Views/Post/Grid/PostGridView.swift +++ b/Sora/Views/Post/Grid/PostGridView.swift @@ -107,12 +107,20 @@ struct PostGridView: View { // swiftlint:disable:this type_body_length } } .animation(.easeInOut, value: manager.historyIndex) - .searchable( - text: $manager.searchText, - isPresented: $isSearchablePresented, - placement: .navigationBarDrawer(displayMode: .automatic), - prompt: "Tags" - ) + #if os(iOS) + .searchable( + text: $manager.searchText, + isPresented: $isSearchablePresented, + placement: .navigationBarDrawer(displayMode: .automatic), + prompt: "Tags" + ) + #else + .searchable( + text: $manager.searchText, + isPresented: $isSearchablePresented, + prompt: "Tags" + ) + #endif .searchSuggestions { if settings.searchSuggestionsMode != .disabled { SearchSuggestionsView( |