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

View File

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