remember what view and view type user was looking at

This commit is contained in:
Trey t
2022-02-10 23:19:03 -06:00
parent e1b563251c
commit 014078c5fb
3 changed files with 19 additions and 12 deletions

View File

@@ -15,6 +15,10 @@ class UserDefaultsStore {
case deleteEnable
case mainViewTopHeaderIndex
case theme
case contentViewHeaderTag
case contentViewHeaderTagViewOneViewType
case contentViewHeaderTagViewTwoViewType
}
static func getOnboarding() -> OnboardingData {

View File

@@ -20,24 +20,22 @@ struct ContentView: View {
@AppStorage(UserDefaultsStore.Keys.deleteEnable.rawValue, store: GroupUserDefaults.groupDefaults) private var deleteEnabled = true
@AppStorage(UserDefaultsStore.Keys.mainViewTopHeaderIndex.rawValue, store: GroupUserDefaults.groupDefaults) private var mainViewTopHeaderIndex = 0
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var currentSelectedHeaderViewBackDays: Int = 30
@AppStorage(UserDefaultsStore.Keys.contentViewHeaderTagViewOneViewType.rawValue, store: GroupUserDefaults.groupDefaults) private var firstSwichableHeaderViewType: MainSwitchableViewType = .total
@AppStorage(UserDefaultsStore.Keys.contentViewHeaderTagViewTwoViewType.rawValue, store: GroupUserDefaults.groupDefaults) private var secondSwichableHeaderViewType: MainSwitchableViewType = .total
@AppStorage(UserDefaultsStore.Keys.contentViewHeaderTag.rawValue, store: GroupUserDefaults.groupDefaults) private var switchableViewSelectedIndex = 1
@State private var showingSheet = false
@State private var showTodayInput = true
@State private var selectedEntry: MoodEntry?
@State private var showUpdateEntryAlert = false
@State private var headerHeight: CGFloat = ContentViewConstants.maxHeaderHeight
@State private var switchableViewSelectedIndex = 1
@State private var headerViewType: MainSwitchableViewType = .total
@State private var currentSelectedHeaderViewViewType: MainSwitchableViewType = .total
@State private var currentSelectedHeaderViewBackDays: Int = 30
@State private var firstSwichableHeaderViewType: MainSwitchableViewType = .total
@State private var secondSwichableHeaderViewType: MainSwitchableViewType = .total
@State private var headerOpacity: Double = 1.0
let minHeaderHeight = ContentViewConstants.minHeaderHeight
let maxHeaderHeight = ContentViewConstants.maxHeaderHeight
@State private var headerOpacity: Double = 1.0
@ObservedObject var viewModel = ContentModeViewModel()
@@ -296,7 +294,9 @@ struct ContentView: View {
} else {
// selection hre doesn't work ...
TabView(selection: $switchableViewSelectedIndex) {
SwitchableView(daysBack: 30, headerTypeChanged: { viewType in
SwitchableView(daysBack: 30,
viewType: $firstSwichableHeaderViewType,
headerTypeChanged: { viewType in
firstSwichableHeaderViewType = viewType
currentSelectedHeaderViewViewType = firstSwichableHeaderViewType
})
@@ -305,7 +305,9 @@ struct ContentView: View {
.frame(minWidth: 0, maxWidth: .infinity)
.contentShape(Rectangle())
SwitchableView(daysBack: 7, headerTypeChanged: { viewType in
SwitchableView(daysBack: 7,
viewType: $secondSwichableHeaderViewType,
headerTypeChanged: { viewType in
secondSwichableHeaderViewType = viewType
currentSelectedHeaderViewViewType = secondSwichableHeaderViewType
})

View File

@@ -23,15 +23,16 @@ enum MainSwitchableViewType: Int, CaseIterable {
}
struct SwitchableView: View {
@State var viewType: MainSwitchableViewType = .total
@Binding var viewType: MainSwitchableViewType
var headerTypeChanged: ((MainSwitchableViewType) -> Void)
let daysBack: Int
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
init(daysBack: Int, headerTypeChanged: @escaping ((MainSwitchableViewType) -> Void)) {
init(daysBack: Int, viewType: Binding<MainSwitchableViewType>, headerTypeChanged: @escaping ((MainSwitchableViewType) -> Void)) {
self.daysBack = daysBack
self.headerTypeChanged = headerTypeChanged
self._viewType = viewType
}
var body: some View {
@@ -88,7 +89,7 @@ struct SwitchableView: View {
struct SwitchableView_Previews: PreviewProvider {
static var previews: some View {
SwitchableView(daysBack: 30, headerTypeChanged: { _ in
SwitchableView(daysBack: 30, viewType: .constant(.total), headerTypeChanged: { _ in
})
}
}