diff --git a/SleepDebt/SettingsView.swift b/SleepDebt/SettingsView.swift new file mode 100644 index 0000000..f83a70a --- /dev/null +++ b/SleepDebt/SettingsView.swift @@ -0,0 +1,70 @@ +// +// SettingsView.swift +// SleepDebt +// +// Created by Oliver Hnát on 06.01.2024. +// + +import SwiftUI + +struct SettingsView: View { + @State var sleepDebtPeriod = 30 + @State var repaymentPeriod = 7 + @FocusState private var focusItem: Bool + private var repaymentString = "Repayment period (days)" + private var sleepDebtString = "Sleep debt period (days)" + let formatter: NumberFormatter = { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + return formatter + }() + + var body: some View { + NavigationStack { + + List { + Section { + LabeledContent { + TextField("", value: $sleepDebtPeriod, formatter: formatter) + .keyboardType(.numberPad) + .onSubmit { + focusItem = false + } + .focused($focusItem) + .multilineTextAlignment(.trailing) + .foregroundStyle(.blue) + } label: { + Text(sleepDebtString) + .fixedSize() + } + + .lineLimit(1) + LabeledContent { + TextField("", value: $repaymentPeriod, formatter: formatter) + .keyboardType(.numberPad) + .onSubmit { + focusItem = false + } + .focused($focusItem) + .multilineTextAlignment(.trailing) + .foregroundStyle(.blue) + + } label: { + Text(repaymentString) + .fixedSize() + } + } + } + .onTapGesture{ + focusItem = false + } + .navigationTitle("Settings") + } + + + } +} + +#Preview { + SettingsView() +} diff --git a/SleepDebt/SleepDebtApp.swift b/SleepDebt/SleepDebtApp.swift index 6554880..507ce98 100644 --- a/SleepDebt/SleepDebtApp.swift +++ b/SleepDebt/SleepDebtApp.swift @@ -12,7 +12,7 @@ struct SleepDebtApp: App { @StateObject var healthKitManager = HealthKitManager() var body: some Scene { WindowGroup { - ContentView() + SleepDebtTabView() .environmentObject(healthKitManager) } } diff --git a/SleepDebt/SleepDebtTabView.swift b/SleepDebt/SleepDebtTabView.swift new file mode 100644 index 0000000..9190d44 --- /dev/null +++ b/SleepDebt/SleepDebtTabView.swift @@ -0,0 +1,35 @@ +// +// SleepDebtTabView.swift +// SleepDebt +// +// Created by Oliver Hnát on 06.01.2024. +// + +import SwiftUI + +struct SleepDebtTabView: View { + @State var selectedTab = "Home" + @StateObject var healthKitManager = HealthKitManager() + var body: some View { + TabView(selection: $selectedTab) { + ContentView() + .tag("Home") + .tabItem { + Image(systemName: "house") + Text("Home") + } + .environmentObject(healthKitManager) + SettingsView() + .tag("Settings") + .tabItem { + Image(systemName: "gear") + Text("Settings") + } + .environmentObject(healthKitManager) + } + } +} + +#Preview { + SleepDebtTabView() +}