From 61a5f71a2e6abdffcf27954b75c0d99ccf3eaefb Mon Sep 17 00:00:00 2001 From: Trey t Date: Thu, 14 Apr 2022 22:31:29 -0500 Subject: [PATCH] remove shrinking headers from day view only show header on day view if its he voting header --- Shared/views/DayView/DayView.swift | 120 +---------------------------- 1 file changed, 3 insertions(+), 117 deletions(-) diff --git a/Shared/views/DayView/DayView.swift b/Shared/views/DayView/DayView.swift index 35fa10d..1ebda78 100644 --- a/Shared/views/DayView/DayView.swift +++ b/Shared/views/DayView/DayView.swift @@ -28,14 +28,6 @@ struct DayView: View { // store a value that gets changed when user updates custom colors to update the view since the moodTint doesn't change @AppStorage(UserDefaultsStore.Keys.customMoodTintUpdateNumber.rawValue, store: GroupUserDefaults.groupDefaults) private var customMoodTintUpdateNumber: Int = 0 - // MARK: top header storage - @AppStorage(UserDefaultsStore.Keys.contentViewCurrentSelectedHeaderViewBackDays.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 - @AppStorage(UserDefaultsStore.Keys.currentSelectedHeaderViewViewType.rawValue, store: GroupUserDefaults.groupDefaults) private var currentSelectedHeaderViewViewType: MainSwitchableViewType = .total - // - // MARK: edit row properties @State private var showingSheet = false @State private var selectedEntry: MoodEntry? @@ -47,12 +39,6 @@ struct DayView: View { @StateObject private var onboardingData = OnboardingDataDataManager.shared @StateObject private var filteredDays = DaysFilterClass.shared - // MARK: header properties - @State private var headerHeight: CGFloat = DayViewConstants.maxHeaderHeight - @State private var headerViewType: MainSwitchableViewType = .total - @State private var headerOpacity: Double = 1.0 - // - @ObservedObject var viewModel: DayViewViewModel var body: some View { @@ -90,36 +76,7 @@ struct DayView: View { }) } } - - // MARK: functions that do view type work - func calcuateViewAlpha() { - let perc = (((Double(headerHeight) - DayViewConstants.minHeaderHeight) * 100) / (DayViewConstants.maxHeaderHeight - DayViewConstants.minHeaderHeight)) / 100 - headerOpacity = perc - } - - func calculateHeight(minHeight: CGFloat, maxHeight: CGFloat, yOffset: CGFloat) { - let newValue = maxHeight + yOffset - - calcuateViewAlpha() - // If scrolling up, yOffset will be a negative number - if newValue < minHeight { - // SCROLLING UP - // Never go smaller than our minimum height - headerHeight = minHeight - return - } - - if newValue > maxHeight { - // SCROLLING UP - // Never go smaller than our minimum height - headerHeight = maxHeight - return - } - - // SCROLLING DOWN - headerHeight = newValue - } - + // MARK: Views public var mainView: some View { VStack { @@ -130,34 +87,15 @@ struct DayView: View { Spacer() } else { ZStack { - Text(String(customMoodTintUpdateNumber)) .hidden() VStack { headerView - Spacer() } - .opacity(headerOpacity) - - VStack { - SmallRollUpHeaderView(entries: getBackEntries(), - viewType: $currentSelectedHeaderViewViewType) - .frame(height: DayViewConstants.minHeaderHeight) - .padding([.trailing, .leading]) - .background( - theme.currentTheme.secondaryBGColor - ) - .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight]) - - Spacer() - } - .opacity(1 - headerOpacity) } - .frame(height: headerHeight + 20) listView - .padding(.top, -25) } } .padding() @@ -191,45 +129,8 @@ struct DayView: View { AddMoodHeaderView(addItemHeaderClosure: { (mood, date) in viewModel.add(mood: mood, forDate: date, entryType: .header) }) - .frame(height: headerHeight) - .frame(minWidth: 0, maxWidth: .infinity) - } else { - // selection hre doesn't work ... - TabView(selection: $switchableViewSelectedIndex) { - SwitchableView(daysBack: 30, - viewType: $firstSwichableHeaderViewType, - headerTypeChanged: { viewType in - firstSwichableHeaderViewType = viewType - currentSelectedHeaderViewViewType = firstSwichableHeaderViewType - }) - .tag(1) - .frame(height: headerHeight) - .frame(minWidth: 0, maxWidth: .infinity) - .contentShape(Rectangle()) - - SwitchableView(daysBack: 7, - viewType: $secondSwichableHeaderViewType, - headerTypeChanged: { viewType in - secondSwichableHeaderViewType = viewType - currentSelectedHeaderViewViewType = secondSwichableHeaderViewType - }) - .tag(2) - .frame(height: headerHeight) - .frame(minWidth: 0, maxWidth: .infinity) - .contentShape(Rectangle()) - } - .tabViewStyle(.page) - .onChange(of: switchableViewSelectedIndex) { value in - if value == 1 { - currentSelectedHeaderViewBackDays = 30 - currentSelectedHeaderViewViewType = firstSwichableHeaderViewType - } - - if value == 2 { - currentSelectedHeaderViewBackDays = 7 - currentSelectedHeaderViewViewType = secondSwichableHeaderViewType - } - } + .frame(height: DayViewConstants.maxHeaderHeight) + .frame(minWidth: 0, maxWidth: .infinity) } } } @@ -261,23 +162,8 @@ struct DayView: View { .background( theme.currentTheme.secondaryBGColor ) - .coordinateSpace(name: "scroll") - .onPreferenceChange(ViewOffsetKey.self) { value in - if viewModel.numberOfItems > 10 { - calculateHeight(minHeight: DayViewConstants.minHeaderHeight, - maxHeight: DayViewConstants.maxHeaderHeight, - yOffset: value) - } - } .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight]) } - - func getBackEntries() -> [MoodEntry] { - var daysAgo = Calendar.current.date(byAdding: .day, value: -self.currentSelectedHeaderViewBackDays, to: Date())! - daysAgo = Calendar.current.date(bySettingHour: 0, minute: 0, second: 0, of: daysAgo)! - - return PersistenceController.shared.getData(startDate: daysAgo, endDate: Date(), includedDays: [1,2,3,4,5,6,7]) - } } // view that make up the list body