mirror of
https://github.com/neon443/NearFuture.git
synced 2026-03-11 14:56:15 +00:00
51 lines
1.0 KiB
Swift
51 lines
1.0 KiB
Swift
//
|
|
// HomeView.swift
|
|
// MacNearFuture
|
|
//
|
|
// Created by neon443 on 28/05/2025.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct HomeView: View {
|
|
@StateObject var viewModel: EventViewModel
|
|
@StateObject var settingsModel: SettingsViewModel
|
|
|
|
@State private var searchInput: String = ""
|
|
|
|
var filteredEvents: [Event] {
|
|
if searchInput.isEmpty {
|
|
if settingsModel.settings.showCompletedInHome {
|
|
return viewModel.events
|
|
} else {
|
|
return viewModel.events.filter() { !$0.complete }
|
|
}
|
|
} else {
|
|
return viewModel.events.filter {
|
|
$0.name.localizedCaseInsensitiveContains(searchInput) ||
|
|
$0.notes.localizedCaseInsensitiveContains(searchInput)
|
|
}
|
|
}
|
|
}
|
|
|
|
var body: some View {
|
|
ScrollView {
|
|
ForEach(viewModel.events) { event in
|
|
if filteredEvents.contains(event) {
|
|
EventListView(viewModel: viewModel, event: event)
|
|
.id(event)
|
|
}
|
|
}
|
|
}
|
|
.searchable(text: $searchInput)
|
|
.scrollContentBackground(.hidden)
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
HomeView(
|
|
viewModel: dummyEventViewModel(),
|
|
settingsModel: dummySettingsViewModel()
|
|
)
|
|
}
|