diff options
Diffstat (limited to 'Sora/Views/Generic/GenericItemView.swift')
| -rw-r--r-- | Sora/Views/Generic/GenericItemView.swift | 49 |
1 files changed, 20 insertions, 29 deletions
diff --git a/Sora/Views/Generic/GenericItemView.swift b/Sora/Views/Generic/GenericItemView.swift index be5611a..99c4f0a 100644 --- a/Sora/Views/Generic/GenericItemView.swift +++ b/Sora/Views/Generic/GenericItemView.swift @@ -5,41 +5,32 @@ struct GenericItemView<T: GenericItem>: View { let item: T let removeAction: (UUID) -> Void - var body: some View { - #if os(macOS) - HStack { - VStack(alignment: .leading) { - Text(item.tags.joined(separator: ", ").lowercased()) + @ViewBuilder + private func itemContent(includeSpacer: Bool = false) -> some View { + Text(item.tags.joined(separator: ", ").lowercased()) - Spacer() + if includeSpacer { Spacer() } - Text("On \(item.date.formatted()) from \(item.provider.rawValue)") - .font(.caption) - .foregroundStyle(Color.secondary) + Text("On \(item.date.formatted()) from \(item.provider.rawValue)") + .font(.caption) + .foregroundStyle(Color.secondary) - if let folder = item.folder, let folderName = settings.folderName(forID: folder) { - Text("In \(folderName)") - .font(.caption) - .foregroundStyle(Color.secondary) - } - - Spacer() - } - } - #else - VStack(alignment: .leading) { - Text(item.tags.joined(separator: ", ").lowercased()) + if let folder = item.folder, let folderName = settings.folderName(forID: folder) { + Text("In \(folderName)") + .font(.caption) + .foregroundStyle(Color.secondary) + } - Text("On \(item.date.formatted()) from \(item.provider.rawValue)") - .font(.caption) - .foregroundStyle(Color.secondary) + if includeSpacer { Spacer() } + } - if let folder = item.folder, let folderName = settings.folderName(forID: folder) { - Text("In \(folderName)") - .font(.caption) - .foregroundStyle(Color.secondary) - } + var body: some View { + #if os(macOS) + HStack { + VStack(alignment: .leading) { itemContent(includeSpacer: true) } } + #else + VStack(alignment: .leading) { itemContent() } #endif } } |