Newer Older
41 lines | 1.001kb
Bogdan Timofte authored 2 months ago
1
//
Bogdan Timofte authored 2 months ago
2
//  MeterInfoCardView.swift
Bogdan Timofte authored 2 months ago
3
//  USB Meter
4
//
5

            
6
import SwiftUI
7

            
Bogdan Timofte authored 2 months ago
8
struct MeterInfoCardView<Content: View>: View {
Bogdan Timofte authored 2 months ago
9
    let title: String
Bogdan Timofte authored a month ago
10
    let infoMessage: String?
Bogdan Timofte authored 2 months ago
11
    let tint: Color
12
    @ViewBuilder var content: Content
13

            
Bogdan Timofte authored a month ago
14
    init(
15
        title: String,
16
        infoMessage: String? = nil,
17
        tint: Color,
18
        @ViewBuilder content: () -> Content
19
    ) {
20
        self.title = title
21
        self.infoMessage = infoMessage
22
        self.tint = tint
23
        self.content = content()
24
    }
25

            
Bogdan Timofte authored 2 months ago
26
    var body: some View {
27
        VStack(alignment: .leading, spacing: 12) {
Bogdan Timofte authored a month ago
28
            HStack(spacing: 8) {
29
                Text(title)
30
                    .font(.headline)
31
                if let infoMessage {
32
                    ContextInfoButton(title: title, message: infoMessage)
33
                }
34
            }
Bogdan Timofte authored 2 months ago
35
            content
36
        }
37
        .frame(maxWidth: .infinity, alignment: .leading)
38
        .padding(18)
39
        .meterCard(tint: tint, fillOpacity: 0.18, strokeOpacity: 0.24)
40
    }
Bogdan Timofte authored a month ago
41
}