Implemented the ListHeader component in the app target.
This commit is contained in:
parent
62b5696378
commit
a12354d613
77
Piper/Sources/UI/Components/ListHeader.swift
Normal file
77
Piper/Sources/UI/Components/ListHeader.swift
Normal file
@ -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)
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user