maybe fix but where days wouldn't show up for voting / missing

This commit is contained in:
Trey t
2022-02-17 12:14:26 -06:00
parent 7bcad65419
commit f0ed56fe94
4 changed files with 83 additions and 48 deletions

View File

@@ -16,7 +16,9 @@ struct AddMoodHeaderView: View {
let addItemHeaderClosure: ((Mood, Date) -> Void)
var overrideDay: DayOptions?
init(addItemHeaderClosure: @escaping ((Mood, Date) -> Void)) {
self.addItemHeaderClosure = addItemHeaderClosure
}
var body: some View {
ZStack {
@@ -55,40 +57,48 @@ struct AddMoodHeaderView: View {
}
private func getTitle() -> String {
if let overrideDay = overrideDay {
switch overrideDay {
case .Today:
return String(localized: "add_mood_header_view_title_today")
case .Previous:
return String(localized: "add_mood_header_view_title_yesterday")
}
} else {
switch savedOnboardingData.inputDay {
case .Today:
return String(localized: "add_mood_header_view_title_today")
case .Previous:
return String(localized: "add_mood_header_view_title_yesterday")
}
//if this is being shown we're missing an entry
// voting time is noon
// vote for current day
// today at 11 am -> How as yesterday
// today at 1 pm -> How is today
// vote for previous day
// today at 11 am -> How as 2 days ago
// today at 1 pm -> How was yesterday
let latestVoteUnLocked = UserDefaultsStore.getOnboarding().ableToVoteBasedOnCurentTime()
let inputDay = UserDefaultsStore.getOnboarding().inputDay
switch (latestVoteUnLocked, inputDay) {
case (true, .Previous):
return "how was yesterday"
case (true, .Today):
return "how is today"
case (false, .Previous):
return "how was two days ago"
case (false, .Today):
return "how as yesterday"
}
}
private func addItem(withMood mood: Mood) {
if let overrideDay = overrideDay {
switch overrideDay {
case .Today:
addItemHeaderClosure(mood, Date())
case .Previous:
let date = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
addItemHeaderClosure(mood, date)
}
} else {
switch savedOnboardingData.inputDay {
case .Today:
addItemHeaderClosure(mood, Date())
case .Previous:
let date = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
addItemHeaderClosure(mood, date)
}
let latestVoteUnLocked = UserDefaultsStore.getOnboarding().ableToVoteBasedOnCurentTime()
let inputDay = UserDefaultsStore.getOnboarding().inputDay
var date: Date?
switch (latestVoteUnLocked, inputDay) {
case (true, .Previous):
date = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
case (true, .Today):
date = Date()
case (false, .Previous):
date = Calendar.current.date(byAdding: .day, value: -2, to: Date())!
case (false, .Today):
date = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
}
if let date = date {
addItemHeaderClosure(mood, date)
}
}
}

View File

@@ -30,7 +30,7 @@ struct EmptyContentView: View {
withAnimation {
viewModel.add(mood: mood, forDate: date, entryType: .header)
}
}, overrideDay: viewModel.shouldShowVotingHeader() ? .Today : .Previous)
})
}
}
.fixedSize(horizontal: false, vertical: true)