MovieCatalog
43 строки · 1011.0 Байт
1//
2// LabeledViewModifier.swift
3// Movies
4//
5// Created by Ivan Semenov on 24.10.2023.
6//
7
8import SwiftUI
9
10struct LabeledViewModifier: ViewModifier {
11
12let title: LocalizedStringKey
13let fontSize: CGFloat
14let fontWeight: Font.Weight
15
16func body(content: Content) -> some View {
17VStack(alignment: .leading, spacing: Constants.contentSpacing) {
18Text(title)
19.font(.system(size: fontSize, weight: fontWeight))
20.foregroundStyle(Color(.label))
21
22content
23}
24}
25
26private enum Constants {
27static let contentSpacing: CGFloat = 11
28}
29}
30
31extension View {
32func smallLabeled(_ title: LocalizedStringKey) -> some View {
33modifier(
34LabeledViewModifier(title: title, fontSize: 17, fontWeight: .medium)
35)
36}
37
38func mediumLabeled(_ title: LocalizedStringKey) -> some View {
39modifier(
40LabeledViewModifier(title: title, fontSize: 19, fontWeight: .bold)
41)
42}
43}
44