wip
This commit is contained in:
@@ -25,6 +25,11 @@ public struct TextLabel<Content: View>: View {
|
||||
}
|
||||
|
||||
extension TextLabel where Content == Text {
|
||||
|
||||
public init(_ text: LocalizedStringKey) {
|
||||
self.init { Text(text) }
|
||||
}
|
||||
|
||||
public init<S>(_ text: S) where S: StringProtocol {
|
||||
self.init { Text(text) }
|
||||
}
|
||||
|
||||
54
Sources/Styleguide/TextLabeledContent.swift
Normal file
54
Sources/Styleguide/TextLabeledContent.swift
Normal file
@@ -0,0 +1,54 @@
|
||||
import SwiftUI
|
||||
|
||||
public struct TextLabeledContent<Content: View, Label: View>: View {
|
||||
|
||||
@Environment(\.textLabelStyle) var style
|
||||
|
||||
let label: TextLabel<Label>
|
||||
let content: () -> Content
|
||||
|
||||
public init(
|
||||
label: TextLabel<Label>,
|
||||
@ViewBuilder content: @escaping () -> Content
|
||||
) {
|
||||
self.content = content
|
||||
self.label = label
|
||||
}
|
||||
|
||||
public var body: some View {
|
||||
LabeledContent {
|
||||
content()
|
||||
} label: {
|
||||
label
|
||||
.textLabelStyle(style)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension TextLabeledContent where Label == Text {
|
||||
|
||||
public init(
|
||||
_ title: LocalizedStringKey,
|
||||
@ViewBuilder content: @escaping () -> Content
|
||||
) {
|
||||
self.init(
|
||||
label: TextLabel(title),
|
||||
content: content
|
||||
)
|
||||
}
|
||||
|
||||
public init<S: StringProtocol>(
|
||||
_ title: S,
|
||||
@ViewBuilder content: @escaping () -> Content
|
||||
) {
|
||||
self.init(
|
||||
label: TextLabel(title),
|
||||
content: content
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
TextLabeledContent("Label") { Text("Content") }
|
||||
.textLabelStyle(.boldSecondary)
|
||||
}
|
||||
Reference in New Issue
Block a user