// // TopWordsView.swift // ReviewsFeed // // Created by Javier Cicchelli on 21/03/2024. // Copyright © 2024 Röck+Cöde. All rights reserved. // import SwiftUI struct TopWordsView: View { // MARK: Constants private let topWords: [TopWord] // MARK: Initialisers init(_ topWords: [TopWord]) { self.topWords = topWords } // MARK: Body var body: some View { HStack { Spacer() HStack(spacing: 12) { ForEach(topWords) { topWord in Item( term: topWord.term, count: String(topWord.count) ) } } Spacer() } } } // MARK: - Structs private extension TopWordsView { struct Item: View { // MARK: Constants let term: String let count: String // MARK: Body var body: some View { HStack( alignment: .center, spacing: 6 ) { Text(count) .font(.footnote) .foregroundColor(.primary.opacity(0.75)) Text(term) .lineLimit(1) .font(.body.bold()) .foregroundColor(.primary) } .padding(.horizontal, 10) .padding(.vertical, 6) .background(Color.secondary.opacity(0.75)) .cornerRadius(8) } } } // MARK: - Previews #Preview { TopWordsView([ .init(id: "1", term: "Something", count: 3), .init(id: "2", term: "Something", count: 2), .init(id: "3", term: "Something", count: 1), ]) .padding(.horizontal) }