mirror of
https://github.com/neon443/NearFuture.git
synced 2026-03-11 06:49:12 +00:00
toolbar label()s instead of buton("label")s
fix event add/delete/tick animation
fix event complete progress on ios and mac and that it just spazzed out
browsing true for symbols browsing (not picking)
68 lines
1.5 KiB
Swift
68 lines
1.5 KiB
Swift
//
|
|
// ArchiveView.swift
|
|
// NearFuture
|
|
//
|
|
// Created by neon443 on 25/04/2025.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct ArchiveView: View {
|
|
@ObservedObject var viewModel: EventViewModel
|
|
@State var showAddEvent: Bool = false
|
|
var filteredEvents: [Event] {
|
|
let filteredEvents = viewModel.events.filter({$0.complete})
|
|
return filteredEvents.reversed()
|
|
}
|
|
var body: some View {
|
|
NavigationStack {
|
|
ZStack {
|
|
backgroundGradient
|
|
if viewModel.events.filter({$0.complete}).isEmpty {
|
|
HelpView(showAddEvent: $showAddEvent)
|
|
} else {
|
|
ScrollView {
|
|
ForEach(filteredEvents) { event in
|
|
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: .primaryAction) {
|
|
AddEventButton(showingAddEventView: $showAddEvent)
|
|
}
|
|
}
|
|
.navigationTitle("Archive")
|
|
.modifier(navigationInlineLarge())
|
|
}
|
|
.sheet(isPresented: $showAddEvent) {
|
|
AddEventView(
|
|
viewModel: viewModel
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
ArchiveView(viewModel: dummyEventViewModel())
|
|
}
|