remember what view and view type user was looking at
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -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
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user