separate all customize views into their own files

make corner radius a constant
create the views in the main app file and pass through so they dont get re-drawn when changing UI things
This commit is contained in:
Trey t
2022-04-02 10:53:04 -05:00
parent 3d1b7abc64
commit 682f62fa4a
25 changed files with 764 additions and 551 deletions

View File

@@ -9,8 +9,6 @@ import SwiftUI
import CoreData
struct YearView: View {
@EnvironmentObject var daysFilter: DaysFilterClass
let months = [(0, "J"), (1, "F"), (2,"M"), (3,"A"), (4,"M"), (5, "J"), (6,"J"), (7,"A"), (8,"S"), (9,"O"), (10, "N"), (11,"D")]
@State private var toggle = true
@@ -24,7 +22,8 @@ struct YearView: View {
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
@AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
@StateObject private var viewModel = YearViewModel()
@StateObject public var viewModel: YearViewModel
@StateObject private var filteredDays = DaysFilterClass.shared
//[
// 2001: [0: [], 1: [], 2: []],
// 2002: [0: [], 1: [], 2: []]
@@ -79,7 +78,7 @@ struct YearView: View {
let yearEntries = PersistenceController.shared.getData(startDate: firstOfYear,
endDate: lastOfYear,
includedDays: daysFilter.currentFilters)
includedDays: filteredDays.currentFilters)
Text(String(yearKey))
.font(.title)
.foregroundColor(textColor)
@@ -144,14 +143,14 @@ struct YearView: View {
}
private struct monthGridView: View {
@EnvironmentObject var daysFilter: DaysFilterClass
@StateObject private var filteredDays = DaysFilterClass.shared
let monthData: [DayChartView]
var body: some View {
VStack {
ForEach(monthData, id: \.self) { view in
if daysFilter.currentFilters.contains(view.weekDay) {
if filteredDays.currentFilters.contains(view.weekDay) {
view
} else {
view.filteredDaysView
@@ -165,9 +164,9 @@ struct YearView: View {
struct YearView_Previews: PreviewProvider {
static var previews: some View {
Group {
YearView()
YearView(viewModel: YearViewModel())
YearView()
YearView(viewModel: YearViewModel())
.preferredColorScheme(.dark)
}
}

View File

@@ -22,6 +22,10 @@ class YearViewModel: ObservableObject {
}
init() {
updateData()
}
private func updateData() {
let filteredEntries = PersistenceController.shared.getData(startDate: Date(timeIntervalSince1970: 0),
endDate: Date(),
includedDays: selectedDays)