make all sheets on the main body
fix crash when backgrounding the app
This commit is contained in:
@@ -15,7 +15,9 @@ enum PercViewType {
|
|||||||
struct HeaderPercView: View {
|
struct HeaderPercView: View {
|
||||||
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
|
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
|
||||||
|
|
||||||
var entries = [MoodMetrics]()
|
@AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
|
||||||
|
|
||||||
|
@State private var entries = [MoodMetrics]()
|
||||||
let backDays: Int
|
let backDays: Int
|
||||||
let type: PercViewType
|
let type: PercViewType
|
||||||
|
|
||||||
@@ -34,11 +36,11 @@ struct HeaderPercView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let moodEntries = moodEntries {
|
if let moodEntries = moodEntries {
|
||||||
entries = Random.createTotalPerc(fromEntries: moodEntries)
|
let moodMetrics = Random.createTotalPerc(fromEntries: moodEntries)
|
||||||
|
|
||||||
entries = entries.sorted(by: {
|
_entries = State(initialValue: moodMetrics.sorted(by: {
|
||||||
$0.mood.rawValue > $1.mood.rawValue
|
$0.mood.rawValue > $1.mood.rawValue
|
||||||
})
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,11 +78,9 @@ struct HeaderPercView: View {
|
|||||||
Text("\(model.percent, specifier: "%.0f")%")
|
Text("\(model.percent, specifier: "%.0f")%")
|
||||||
.font(.title2)
|
.font(.title2)
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
.multilineTextAlignment(.center)
|
|
||||||
.padding()
|
.padding()
|
||||||
.frame(maxWidth: .infinity)
|
|
||||||
.background(Circle().fill(moodTint.color(forMood: model.mood)))
|
.background(Circle().fill(moodTint.color(forMood: model.mood)))
|
||||||
.foregroundColor(Color(UIColor.white))
|
.frame(maxWidth: .infinity)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Spacer()
|
Spacer()
|
||||||
@@ -89,15 +89,14 @@ struct HeaderPercView: View {
|
|||||||
Text("\(model.percent, specifier: "%.0f")%")
|
Text("\(model.percent, specifier: "%.0f")%")
|
||||||
.font(.title2)
|
.font(.title2)
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
.multilineTextAlignment(.center)
|
|
||||||
.padding()
|
.padding()
|
||||||
.frame(maxWidth: .infinity)
|
|
||||||
.background(Circle().fill(moodTint.color(forMood: model.mood)))
|
.background(Circle().fill(moodTint.color(forMood: model.mood)))
|
||||||
.foregroundColor(Color(UIColor.white))
|
.frame(maxWidth: .infinity)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
|
.foregroundColor(textColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
|
|||||||
@@ -55,7 +55,13 @@ struct HomeView: View {
|
|||||||
@ObservedObject var viewModel = HomeViewViewModel(addMonthStartWeekdayPadding: false)
|
@ObservedObject var viewModel = HomeViewViewModel(addMonthStartWeekdayPadding: false)
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
mainView
|
mainView
|
||||||
|
.onAppear(perform: {
|
||||||
|
EventLogger.log(event: "show_home_view")
|
||||||
|
})
|
||||||
|
.sheet(isPresented: $showingSheet) {
|
||||||
|
SettingsView()
|
||||||
|
}
|
||||||
.alert(HomeViewViewModel.updateTitleHeader(forEntry: selectedEntry),
|
.alert(HomeViewViewModel.updateTitleHeader(forEntry: selectedEntry),
|
||||||
isPresented: $showUpdateEntryAlert) {
|
isPresented: $showUpdateEntryAlert) {
|
||||||
ForEach(Mood.allValues) { mood in
|
ForEach(Mood.allValues) { mood in
|
||||||
@@ -82,9 +88,6 @@ struct HomeView: View {
|
|||||||
showUpdateEntryAlert = false
|
showUpdateEntryAlert = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
.onAppear(perform: {
|
|
||||||
EventLogger.log(event: "show_home_view")
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: functions that do view type work
|
// MARK: functions that do view type work
|
||||||
@@ -177,9 +180,7 @@ struct HomeView: View {
|
|||||||
Image(systemName: "gear")
|
Image(systemName: "gear")
|
||||||
.foregroundColor(Color(UIColor.darkGray))
|
.foregroundColor(Color(UIColor.darkGray))
|
||||||
.font(.system(size: 20))
|
.font(.system(size: 20))
|
||||||
}).sheet(isPresented: $showingSheet) {
|
}).padding(.trailing)
|
||||||
SettingsView()
|
|
||||||
}.padding(.trailing)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,8 +75,18 @@ struct MonthDetailView: View {
|
|||||||
theme.currentTheme.secondaryBGColor
|
theme.currentTheme.secondaryBGColor
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
.alert(HomeViewViewModel.updateTitleHeader(forEntry: selectedEntry),
|
.onAppear(perform: {
|
||||||
isPresented: $showUpdateEntryAlert) {
|
EventLogger.log(event: "show_month_detail_view")
|
||||||
|
})
|
||||||
|
.background(
|
||||||
|
theme.currentTheme.bg
|
||||||
|
)
|
||||||
|
.sheet(isPresented: self.$shareImage.showFuckingSheet) {
|
||||||
|
if let uiImage = self.shareImage.fuckingWrappedShrable {
|
||||||
|
ShareSheet(photo: uiImage)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.alert(HomeViewViewModel.updateTitleHeader(forEntry: selectedEntry), isPresented: $showUpdateEntryAlert) {
|
||||||
ForEach(Mood.allValues) { mood in
|
ForEach(Mood.allValues) { mood in
|
||||||
Button(mood.strValue, action: {
|
Button(mood.strValue, action: {
|
||||||
if let selectedEntry = selectedEntry {
|
if let selectedEntry = selectedEntry {
|
||||||
@@ -104,17 +114,6 @@ struct MonthDetailView: View {
|
|||||||
showUpdateEntryAlert = false
|
showUpdateEntryAlert = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
.onAppear(perform: {
|
|
||||||
EventLogger.log(event: "show_month_detail_view")
|
|
||||||
})
|
|
||||||
.background(
|
|
||||||
theme.currentTheme.bg
|
|
||||||
)
|
|
||||||
.sheet(isPresented: self.$shareImage.showFuckingSheet) {
|
|
||||||
if let uiImage = self.shareImage.fuckingWrappedShrable {
|
|
||||||
ShareSheet(photo: uiImage)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private var shareView: some View {
|
private var shareView: some View {
|
||||||
|
|||||||
@@ -72,9 +72,6 @@ struct MonthView: View {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
.padding([.leading, .trailing])
|
.padding([.leading, .trailing])
|
||||||
}.sheet(isPresented: $selectedDetail.showFuckingSheet,
|
|
||||||
onDismiss: didDismiss) {
|
|
||||||
selectedDetail.fuckingWrapped
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -86,6 +83,10 @@ struct MonthView: View {
|
|||||||
theme.currentTheme.bg
|
theme.currentTheme.bg
|
||||||
.edgesIgnoringSafeArea(.all)
|
.edgesIgnoringSafeArea(.all)
|
||||||
)
|
)
|
||||||
|
.sheet(isPresented: $selectedDetail.showFuckingSheet,
|
||||||
|
onDismiss: didDismiss) {
|
||||||
|
selectedDetail.fuckingWrapped
|
||||||
|
}
|
||||||
.sheet(isPresented: self.$shareImage.showFuckingSheet) {
|
.sheet(isPresented: self.$shareImage.showFuckingSheet) {
|
||||||
if let uiImage = self.shareImage.fuckingWrappedShrable {
|
if let uiImage = self.shareImage.fuckingWrappedShrable {
|
||||||
ShareSheet(photo: uiImage)
|
ShareSheet(photo: uiImage)
|
||||||
|
|||||||
@@ -133,16 +133,15 @@ struct SharingListView: View {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.padding([.top, .bottom])
|
||||||
.background(
|
.background(
|
||||||
theme.currentTheme.bg
|
theme.currentTheme.bg
|
||||||
.edgesIgnoringSafeArea(.top)
|
.edgesIgnoringSafeArea(.top)
|
||||||
)
|
)
|
||||||
.sheet(isPresented: $selectedShare.showFuckingSheet,
|
.sheet(isPresented: $selectedShare.showFuckingSheet,
|
||||||
onDismiss: didDismiss) {
|
onDismiss: didDismiss) {
|
||||||
selectedShare.fuckingWrappedShrable?.destination
|
selectedShare.fuckingWrappedShrable?.destination
|
||||||
}
|
}
|
||||||
.padding([.top, .bottom])
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func share(image: UIImage) {
|
func share(image: UIImage) {
|
||||||
|
|||||||
@@ -174,16 +174,11 @@ struct AllMoodsTotalTemplate: View, SharingTemplate {
|
|||||||
.foregroundColor(Color.white)
|
.foregroundColor(Color.white)
|
||||||
.padding(.top, 20)
|
.padding(.top, 20)
|
||||||
})
|
})
|
||||||
.sheet(isPresented: self.$shareImage.showFuckingSheet) {
|
.frame(maxWidth: .infinity, alignment: .center)
|
||||||
if let uiImage = self.shareImage.fuckingWrappedShrable {
|
.background(
|
||||||
ShareSheet(photo: uiImage)
|
Color.green
|
||||||
}
|
)
|
||||||
}
|
.padding(.trailing, -5)
|
||||||
.frame(maxWidth: .infinity, alignment: .center)
|
|
||||||
.background(
|
|
||||||
Color.green
|
|
||||||
)
|
|
||||||
.padding(.trailing, -5)
|
|
||||||
|
|
||||||
Button(action: {
|
Button(action: {
|
||||||
presentationMode.wrappedValue.dismiss()
|
presentationMode.wrappedValue.dismiss()
|
||||||
@@ -210,6 +205,11 @@ struct AllMoodsTotalTemplate: View, SharingTemplate {
|
|||||||
.scaleEffect(2)
|
.scaleEffect(2)
|
||||||
} else {
|
} else {
|
||||||
mainView
|
mainView
|
||||||
|
.sheet(isPresented: self.$shareImage.showFuckingSheet) {
|
||||||
|
if let uiImage = self.shareImage.fuckingWrappedShrable {
|
||||||
|
ShareSheet(photo: uiImage)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user