diff --git a/MacNearFuture/MacNearFutureApp.swift b/MacNearFuture/MacNearFutureApp.swift index af93f59..434bfa1 100644 --- a/MacNearFuture/MacNearFutureApp.swift +++ b/MacNearFuture/MacNearFutureApp.swift @@ -44,12 +44,7 @@ struct NearFutureApp: App { viewModel.events.first(where: {$0.id == eventID}) ?? viewModel.template }, set: { newValue in - if let eventIndex = viewModel.events.firstIndex(where: { - $0.id == eventID - }) { - viewModel.events[eventIndex] = newValue - } - viewModel.saveEvents() + viewModel.editEvent(newValue) } ) ) diff --git a/MacNearFuture/Views/ContentViewMac.swift b/MacNearFuture/Views/ContentViewMac.swift index c8c40bf..1b40ecb 100644 --- a/MacNearFuture/Views/ContentViewMac.swift +++ b/MacNearFuture/Views/ContentViewMac.swift @@ -37,7 +37,8 @@ struct ContentView: View { } NavigationLink { SymbolsPicker( - selection: $symbolSearchInput + selection: .constant(""), + browsing: true ) } label: { Image(systemName: "star.circle") diff --git a/NearFuture/Views/Archive/ArchiveView.swift b/NearFuture/Views/Archive/ArchiveView.swift index f50473b..8f0fae4 100644 --- a/NearFuture/Views/Archive/ArchiveView.swift +++ b/NearFuture/Views/Archive/ArchiveView.swift @@ -23,18 +23,31 @@ struct ArchiveView: View { } else { ScrollView { ForEach(filteredEvents) { event in - EventListView(viewModel: viewModel, event: event) - .transition(.moveAndFadeReversed) - .id(event.complete) + NavigationLink() { + EditEventView( + viewModel: viewModel, + event: Binding( + get: { event }, + set: { newValue in + viewModel.editEvent(newValue) + } + ) + ) + } label: { + EventListView(viewModel: viewModel, event: event) + .id(event.complete) + } + .transition(.moveAndFadeReversed) } .padding(.horizontal) } .animation(.default, value: filteredEvents) } } + .transition(.opacity) .scrollContentBackground(.hidden) .toolbar { - ToolbarItem(placement: .topBarTrailing) { + ToolbarItem(placement: .primaryAction) { AddEventButton(showingAddEventView: $showAddEvent) } } diff --git a/NearFuture/Views/ContentView.swift b/NearFuture/Views/ContentView.swift index 25d7aaf..a0c3e5a 100644 --- a/NearFuture/Views/ContentView.swift +++ b/NearFuture/Views/ContentView.swift @@ -35,7 +35,8 @@ struct ContentView: View { } .tag(Tab.archive) SymbolsPicker( - selection: .constant("") + selection: .constant(""), + browsing: true ) .tabItem { Label("Symbols", systemImage: "star.circle") diff --git a/NearFuture/Views/Events/AddEventView.swift b/NearFuture/Views/Events/AddEventView.swift index 28d288c..f51f8f4 100644 --- a/NearFuture/Views/Events/AddEventView.swift +++ b/NearFuture/Views/Events/AddEventView.swift @@ -155,10 +155,7 @@ struct AddEventView: View { bye.toggle() resetAddEventView() } label: { - Text("Save") - .font(.headline) - .cornerRadius(10) - .buttonStyle(BorderedProminentButtonStyle()) + Label("Save", systemImage: "checkmark") } .tint(.accent) .modifier(hapticSuccess(trigger: bye)) @@ -184,9 +181,7 @@ struct AddEventView: View { viewModel.editEvent(event) dismiss() } label: { - Text("Done") - .bold() - .foregroundStyle(.blue) + Label("Done", systemImage: "checkmark") } .disabled(event.name == "") } diff --git a/NearFuture/Views/Home/EventListView.swift b/NearFuture/Views/Home/EventListView.swift index 29b6c98..5ec6a8c 100644 --- a/NearFuture/Views/Home/EventListView.swift +++ b/NearFuture/Views/Home/EventListView.swift @@ -80,7 +80,6 @@ struct EventListView: View { event: $event ) } - .transition(.opacity) .fixedSize(horizontal: false, vertical: true) } .onHover { isHovering in @@ -170,7 +169,6 @@ struct EventListView: View { event: $event ) } - .transition(.opacity) .padding(.vertical, 5) .overlay( RoundedRectangle(cornerRadius: 15) diff --git a/NearFuture/Views/Home/HomeView.swift b/NearFuture/Views/Home/HomeView.swift index 0290efc..8f77c9e 100644 --- a/NearFuture/Views/Home/HomeView.swift +++ b/NearFuture/Views/Home/HomeView.swift @@ -48,12 +48,20 @@ struct HomeView: View { // LazyVStack { ForEach(filteredEvents) { event in NavigationLink() { - + EditEventView( + viewModel: viewModel, + event: Binding( + get: { event }, + set: { newValue in + viewModel.editEvent(newValue) + } + ) + ) } label: { EventListView(viewModel: viewModel, event: event) - .transition(.moveAndFade) .id(event.complete) } + .transition(.moveAndFade) } .padding(.horizontal) // } @@ -77,7 +85,7 @@ struct HomeView: View { ) } .toolbar { - ToolbarItem(placement: .topBarTrailing) { + ToolbarItem(placement: .primaryAction) { AddEventButton(showingAddEventView: $showingAddEventView) } } diff --git a/Shared/CompleteEventButton.swift b/Shared/CompleteEventButton.swift index 63cdd85..9cef283 100644 --- a/Shared/CompleteEventButton.swift +++ b/Shared/CompleteEventButton.swift @@ -40,11 +40,11 @@ struct CompleteEventButton: View { let elapsed = Date().timeIntervalSince(completeStartTime) progress = min(1, elapsed) - if progress > 1 { - timer.invalidate() - progress = 0 + if progress >= 1 { withAnimation { completeInProgress = false } viewModel.completeEvent(&event) + timer.invalidate() + progress = 0 } } RunLoop.main.add(timer!, forMode: .common) diff --git a/Shared/Model/SymbolsPicker/SymbolsPicker.swift b/Shared/Model/SymbolsPicker/SymbolsPicker.swift index 011de62..92f988d 100644 --- a/Shared/Model/SymbolsPicker/SymbolsPicker.swift +++ b/Shared/Model/SymbolsPicker/SymbolsPicker.swift @@ -14,6 +14,7 @@ struct SymbolsPicker: View { @FocusState var searchfocuesd: Bool @State var searchInput: String = "" + @State var browsing: Bool = false @Environment(\.dismiss) var dismiss var symbols: [String] { @@ -69,9 +70,13 @@ struct SymbolsPicker: View { .searchable(text: $searchInput) .toolbar { ToolbarItem(placement: .cancellationAction) { - Button("Cancel") { - searchInput = "" - dismiss() + if !browsing { + Button() { + searchInput = "" + dismiss() + } label: { + Label("Cancel", systemImage: "xmark") + } } } }