Files
NearFuture/NearFuture/ArchiveView.swift
neon443 08675b921a semi rewrite
fixed adding events
new icon
add archive view
fixed sync between contentView & archiveview
new help view
new eventlistview
new addeventbutton
fixed widgets
2025-04-29 12:50:23 +01:00

67 lines
1.6 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
@State var hey: UUID = UUID()
init(viewModel: EventViewModel) {
self.viewModel = viewModel
}
var body: some View {
NavigationStack {
ZStack {
backgroundGradient
if viewModel.events.filter({$0.complete}).isEmpty {
HelpView(showAddEvent: $showAddEvent)
} else {
ScrollView {
ForEach(viewModel.events.filter({$0.complete})) { event in
EventListView(viewModel: viewModel, event: event)
}
.padding(.horizontal)
.id(hey)
.onReceive(viewModel.objectWillChange) {
hey = UUID()
}
}
}
}
.scrollContentBackground(.hidden)
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
AddEventButton(showingAddEventView: $showAddEvent)
}
}
}
.sheet(isPresented: $showAddEvent) {
AddEventView(
viewModel: viewModel,
eventName: $viewModel.editableTemplate.name,
eventComplete: $viewModel.editableTemplate.complete,
eventCompleteDesc: $viewModel.editableTemplate.completeDesc,
eventSymbol: $viewModel.editableTemplate.symbol,
eventColor: $viewModel.editableTemplate.color.colorBind,
eventNotes: $viewModel.editableTemplate.notes,
eventDate: $viewModel.editableTemplate.date,
eventTime: $viewModel.editableTemplate.time,
eventRecurrence: $viewModel.editableTemplate.recurrence,
adding: true
)
.presentationDragIndicator(.visible)
}
}
}
#Preview {
ArchiveView(viewModel: dummyEventViewModel())
}