diff --git a/Piper/Sources/UI/Components/ListHeader.swift b/Piper/Sources/UI/Components/ListHeader.swift new file mode 100644 index 0000000..2223432 --- /dev/null +++ b/Piper/Sources/UI/Components/ListHeader.swift @@ -0,0 +1,77 @@ +// +// ListHeader.swift +// Piper ~ App +// +// Created by Javier Cicchelli on 06/10/2024. +// Copyright © 2024 Röck+Cöde. All rights reserved. +// + +import SwiftUI + +struct ListHeader: View { + + // MARK: Properties + + let title: LocalizedStringKey + let button: LocalizedStringKey + let showButton: Bool + let onAction: () -> Void + + // MARK: Body + + var body: some View { + HStack { + Text(title) + .font(.headline) + .foregroundStyle(.primary) + + if showButton { + Spacer() + + Button( + button, + action: onAction + ) + .buttonStyle(.borderless) + } + } + .padding(.vertical) + } + +} + +// MARK: - Previews + +#Preview("List Section component with title") { + List { + Section { + EmptyView() + } header: { + ListHeader( + title: "Some title goes here...", + button: "Some button goes here...", + showButton: false + ) { + // ... + } + } + } + .frame(width: 400, height: 100) +} + +#Preview("List Section component with title and button") { + List { + Section { + EmptyView() + } header: { + ListHeader( + title: "Some title goes here...", + button: "Some button goes here...", + showButton: true + ) { + // ... + } + } + } + .frame(width: 400, height: 100) +}