import SwiftUI struct SelectableListItem: View where Content: View { let content: () -> Content let selected: Bool public init(selected: Bool, @ViewBuilder content: @escaping () -> Content) { self.selected = selected self.content = content } var body: some View { HStack { content() Spacer() } .padding(.horizontal, 4) .padding(.vertical, 7) .foregroundStyle(selected ? Color.white : Color.primary) .background(selected ? Color.blue : Color.clear) .clipShape(RoundedRectangle(cornerRadius: 5)) .contentShape(Rectangle()) .listRowInsets(.init(top: 0, leading: -8, bottom: 0, trailing: -8)) .listRowBackground(Color.clear) .listRowSeparator(.hidden) } }