diff --git a/Piper/Sources/UI/Components/ListItemEmpty.swift b/Piper/Sources/UI/Components/ListItemEmpty.swift new file mode 100644 index 0000000..66e4b91 --- /dev/null +++ b/Piper/Sources/UI/Components/ListItemEmpty.swift @@ -0,0 +1,61 @@ +// +// ListItemEmpty.swift +// Piper ~ App +// +// Created by Javier Cicchelli on 06/10/2024. +// Copyright © 2024 Röck+Cöde. All rights reserved. +// + +import SwiftUI + +struct ListItemEmpty: View { + + // MARK: Properties + + let title: LocalizedStringKey + let button: LocalizedStringKey + let onAction: () -> Void + + // MARK: Body + + var body: some View { + GeometryReader { proxy in + Color.clear + .overlay { + VStack(spacing: 16) { + Text(title) + .font(.title) + .foregroundStyle(.secondary) + .frame(maxWidth: .infinity) + .multilineTextAlignment(.center) + + Button(action: onAction) { + Text(button) + .font(.body) + .fontWeight(.semibold) + .multilineTextAlignment(.center) + } + .buttonStyle(.link) + .foregroundStyle(.primary) + } + } + .padding(.horizontal, proxy.size.width * 0.2) + } + } + +} + +// MARK: - Previews + +#Preview("List Item Empty component with title and button") { + List { + ListItemEmpty( + title: "Some title text goes here...", + button: "Some button text goes here..." + ) { + // ... + } + .frame(height: 300) + } + .frame(width: 400, height: 300) +}