diff options
| author | Fuwn <[email protected]> | 2025-03-02 06:11:03 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-03-02 06:11:03 -0800 |
| commit | aeb074b5f308172ba50ac9ae0f5ac6e3159cacb7 (patch) | |
| tree | 59502ad26db905dbf4c1003b6ec2c3b1e961ac0d /Sora/Views/Generic/GenericItemView.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-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.swift | 40 |
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 + } +} |