summaryrefslogtreecommitdiff
path: root/Sora/Views/Generic/GenericItemView.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-03-02 06:11:03 -0800
committerFuwn <[email protected]>2025-03-02 06:11:03 -0800
commitaeb074b5f308172ba50ac9ae0f5ac6e3159cacb7 (patch)
tree59502ad26db905dbf4c1003b6ec2c3b1e961ac0d /Sora/Views/Generic/GenericItemView.swift
parentfeat: Development commit (diff)
downloadsora-testing-aeb074b5f308172ba50ac9ae0f5ac6e3159cacb7.tar.xz
sora-testing-aeb074b5f308172ba50ac9ae0f5ac6e3159cacb7.zip
feat: Development commit
Diffstat (limited to 'Sora/Views/Generic/GenericItemView.swift')
-rw-r--r--Sora/Views/Generic/GenericItemView.swift40
1 files changed, 40 insertions, 0 deletions
diff --git a/Sora/Views/Generic/GenericItemView.swift b/Sora/Views/Generic/GenericItemView.swift
new file mode 100644
index 0000000..ec8deaa
--- /dev/null
+++ b/Sora/Views/Generic/GenericItemView.swift
@@ -0,0 +1,40 @@
+import SwiftUI
+
+struct GenericItemView<T: ItemViewModel>: View {
+ @EnvironmentObject var settings: SettingsManager
+ let item: T
+ let removeAction: (UUID) -> Void
+
+ var body: some View {
+ #if os(macOS)
+ HStack {
+ VStack(alignment: .leading) {
+ Text(item.tags.joined(separator: ", ").lowercased())
+
+ Spacer()
+
+ Text("On \(item.date.formatted()) from \(item.provider.rawValue)")
+ .font(.caption)
+ .foregroundStyle(Color.secondary)
+
+ Spacer()
+ }
+ }
+ .contextMenu {
+ Button {
+ removeAction(item.id)
+ } label: {
+ Label("Remove", systemImage: "trash")
+ }
+ }
+ #else
+ VStack(alignment: .leading) {
+ Text(item.tags.joined(separator: ", ").lowercased())
+
+ Text("On \(item.date.formatted()) from \(item.provider.rawValue)")
+ .font(.caption)
+ .foregroundStyle(Color.secondary)
+ }
+ #endif
+ }
+}