1 contributor
//
// ChargeRecordSheetView.swift
// USB Meter
//
// Created by Bogdan Timofte on 09/03/2020.
// Copyright © 2020 Bogdan Timofte. All rights reserved.
//
import SwiftUI
struct ChargeRecordSheetView: View {
@Binding var visibility: Bool
var body: some View {
NavigationView {
MeterChargeRecordContentView()
.navigationTitle("Charge Record")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button("Done") {
visibility = false
}
}
}
}
.navigationViewStyle(StackNavigationViewStyle())
}
}
struct BatteryTargetNotificationEditorSheetView: View {
@Environment(\.dismiss) private var dismiss
@EnvironmentObject private var appData: AppData
let sessionID: UUID
let initialTargetPercent: Double?
@State private var targetPercent: Double
init(sessionID: UUID, initialTargetPercent: Double?) {
self.sessionID = sessionID
self.initialTargetPercent = initialTargetPercent
_targetPercent = State(initialValue: initialTargetPercent ?? 80)
}
var body: some View {
NavigationView {
Form {
Section(
header: ContextInfoHeader(
title: "Target Level",
message: "A local notification will be generated on synced devices when the estimated battery level reaches this target."
)
) {
VStack(alignment: .leading, spacing: 12) {
Text("\(targetPercent.format(decimalDigits: 0))%")
.font(.title3.weight(.bold))
Slider(value: $targetPercent, in: 20...100, step: 1)
}
}
}
.navigationTitle("Battery Target")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button("Cancel") {
dismiss()
}
}
ToolbarItem(placement: .confirmationAction) {
Button("Save") {
if appData.setTargetBatteryPercent(targetPercent, for: sessionID) {
dismiss()
}
}
}
}
}
}
}
#Preview {
ChargeRecordSheetView(visibility: .constant(true))
}