implement settings

This commit is contained in:
2026-01-27 02:39:24 +01:00
parent f45f7db10b
commit 5f05da552d
5 changed files with 124 additions and 19 deletions

View File

@@ -53,6 +53,7 @@ class ContentViewModel: ObservableObject {
struct ContentView: View {
@StateObject private var viewModel = ContentViewModel()
@State private var isShowingAddSheet = false
@State private var isShowingSettings = false
@State private var selectedStopwatch: Stopwatch?
@Environment(\.scenePhase) private var scenePhase
@@ -78,6 +79,13 @@ struct ContentView: View {
.listStyle(.plain)
.navigationTitle("MultiChrono")
.toolbar {
ToolbarItem(placement: .topBarLeading) {
Button {
isShowingSettings = true
} label: {
Image(systemName: "gearshape")
}
}
ToolbarItem(placement: .primaryAction) {
Button(action: {
isShowingAddSheet = true
@@ -92,6 +100,9 @@ struct ContentView: View {
isShowingAddSheet = false
}
}
.sheet(isPresented: $isShowingSettings) {
SettingsView()
}
.sheet(item: $selectedStopwatch) { stopwatch in
StopwatchDetailView(
stopwatch: stopwatch,
@@ -115,6 +126,7 @@ struct ContentView: View {
}
}
}
.onChange(of: scenePhase) { newPhase in
if newPhase == .background || newPhase == .inactive {
viewModel.save()