no votes screen

This commit is contained in:
Trey t
2022-01-26 14:02:50 -06:00
parent 25843185f9
commit 3739bc1aa1
4 changed files with 73 additions and 17 deletions

View File

@@ -12,6 +12,10 @@ class ContentModeViewModel: ObservableObject {
@Published var grouped = [Int: [Int: [MoodEntry]]]()
@Published public private(set) var savedOnboardingData = UserDefaultsStore.getOnboarding()
var hasNoData: Bool {
grouped.isEmpty
}
init() {
PersistenceController.shared.switchContainerListeners.append {
self.getGroupedData()

View File

@@ -14,7 +14,9 @@ struct AddMoodHeaderView: View {
private let savedOnboardingData = UserDefaultsStore.getOnboarding()
let addItemHeaderClosure: ((Mood, Date) -> Void)
var overrideDay: DayOptions?
var body: some View {
ZStack {
Color(UIColor.systemBackground)
@@ -50,22 +52,40 @@ struct AddMoodHeaderView: View {
}
private func getTitle() -> String {
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 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")
}
}
}
private func addItem(withMood mood: Mood) {
switch savedOnboardingData.inputDay {
case .Today:
addItemHeaderClosure(mood, Date())
case .Previous:
let date = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
addItemHeaderClosure(mood, date)
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)
}
}
}
}

View File

@@ -205,6 +205,32 @@ struct ContentView: View {
}
}
private var emptyView: some View {
ZStack {
Color(UIColor.systemBackground)
VStack {
Text(String(localized: "content_view_empty_title"))
.font(.title)
.foregroundColor(Color(UIColor.label))
.padding()
Text(String(localized: "content_view_empty_title"))
.font(.body)
.foregroundColor(Color(UIColor.label))
.padding()
AddMoodHeaderView(addItemHeaderClosure: { (mood, date) in
withAnimation {
viewModel.add(mood: mood, forDate: date)
}
}, overrideDay: viewModel.shouldShowVotingHeader() ? .Today : .Previous)
}
}
.fixedSize(horizontal: false, vertical: true)
.clipShape(RoundedRectangle(cornerRadius: 25, style: .continuous))
.padding()
}
private var mainView: some View {
ZStack {
@@ -213,10 +239,14 @@ struct ContentView: View {
VStack{
settingsButtonView
.padding(.top, 50)
headerView
listView
if viewModel.hasNoData {
Spacer()
emptyView
Spacer()
} else {
headerView
listView
}
}
.padding(.bottom)
}

View File

@@ -36,6 +36,8 @@
"content_view_fill_in_missing_entry" = "Fill in missing entry";
"content_view_fill_in_missing_entry_cancel" = "Cancel";
"content_view_header_title" = "Past %d days";
"content_view_empty_title" = "You aint done shit";
"content_view_empty_body" = "Fucking vote or something?!?!? How the fuck was yesterday?";
"filter_view_total" = "Total";
"filter_view_show_filters" = "Show Filters";