remember what view and view type user was looking at
This commit is contained in:
@@ -15,6 +15,10 @@ class UserDefaultsStore {
|
||||
case deleteEnable
|
||||
case mainViewTopHeaderIndex
|
||||
case theme
|
||||
|
||||
case contentViewHeaderTag
|
||||
case contentViewHeaderTagViewOneViewType
|
||||
case contentViewHeaderTagViewTwoViewType
|
||||
}
|
||||
|
||||
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.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
|
||||
})
|
||||
|
||||
@@ -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
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user