diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift index 52995797c..939bf0502 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift @@ -188,9 +188,10 @@ struct AnimatingCellHeight: AnimatableModifier { @State var showAddLinkView = false @State var isListScrolled = false @State var listTitle = "" - @State var isEditMode: EditMode = .inactive @State var showExpandedAudioPlayer = false + @Binding var isEditMode: EditMode + @EnvironmentObject var dataService: DataService @EnvironmentObject var audioController: AudioController @Environment(\.horizontalSizeClass) var horizontalSizeClass @@ -200,8 +201,9 @@ struct AnimatingCellHeight: AnimatableModifier { @ObservedObject var viewModel: HomeFeedViewModel @State private var selection = Set() - init(viewModel: HomeFeedViewModel) { + init(viewModel: HomeFeedViewModel, isEditMode: Binding) { _viewModel = ObservedObject(wrappedValue: viewModel) + _isEditMode = isEditMode } func loadItems(isRefresh: Bool) { diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeView.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeView.swift deleted file mode 100644 index 5fa1372c1..000000000 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeView.swift +++ /dev/null @@ -1,34 +0,0 @@ -import SwiftUI -import Utils -import Views - -@MainActor -struct HomeView: View { - @State private var viewModel: HomeFeedViewModel - - init(viewModel: HomeFeedViewModel) { - self.viewModel = viewModel - } - - var body: some View { - #if os(iOS) - HomeFeedContainerView(viewModel: viewModel) - #elseif os(macOS) - HomeFeedView(viewModel: viewModel) - .frame(minWidth: 320) - .toolbar { - ToolbarItem { - Button( - action: { - NSApp.keyWindow?.firstResponder?.tryToPerform( - #selector(NSSplitViewController.toggleSidebar(_:)), with: nil - ) - }, - label: { Label(LocalText.navigationSelectSidebarToggle, systemImage: "sidebar.left") } - ) - } - } - - #endif - } -} diff --git a/apple/OmnivoreKit/Sources/App/Views/LibrarySplitView.swift b/apple/OmnivoreKit/Sources/App/Views/LibrarySplitView.swift index 12ff7edb6..9287b8b6c 100644 --- a/apple/OmnivoreKit/Sources/App/Views/LibrarySplitView.swift +++ b/apple/OmnivoreKit/Sources/App/Views/LibrarySplitView.swift @@ -6,6 +6,7 @@ import SwiftUI @MainActor public struct LibrarySplitView: View { @EnvironmentObject var dataService: DataService + @State var isEditMode: EditMode = .inactive @StateObject private var viewModel = HomeFeedViewModel( filterKey: "lastSelected", @@ -37,7 +38,7 @@ public struct LibrarySplitView: View { .navigationBarTitleDisplayMode(.inline) .navigationTitle("") - HomeFeedContainerView(viewModel: viewModel) + HomeFeedContainerView(viewModel: viewModel, isEditMode: $isEditMode) .navigationViewStyle(.stack) .navigationBarTitleDisplayMode(.inline) } diff --git a/apple/OmnivoreKit/Sources/App/Views/LibraryTabView.swift b/apple/OmnivoreKit/Sources/App/Views/LibraryTabView.swift index 6fa328866..078a326f0 100644 --- a/apple/OmnivoreKit/Sources/App/Views/LibraryTabView.swift +++ b/apple/OmnivoreKit/Sources/App/Views/LibraryTabView.swift @@ -21,6 +21,8 @@ struct LibraryTabView: View { @AppStorage("LibraryTabView::hideFollowingTab") var hideFollowingTab = false @AppStorage(UserDefaultKey.lastSelectedTabItem.rawValue) var selectedTab = "inbox" + + @State var isEditMode: EditMode = .inactive @State var showExpandedAudioPlayer = false private let syncManager = LibrarySyncManager() @@ -74,14 +76,14 @@ struct LibraryTabView: View { TabView(selection: $selectedTab) { if !hideFollowingTab { NavigationView { - HomeFeedContainerView(viewModel: followingViewModel) + HomeFeedContainerView(viewModel: followingViewModel, isEditMode: $isEditMode) .navigationBarTitleDisplayMode(.inline) .navigationViewStyle(.stack) }.tag("following") } NavigationView { - HomeFeedContainerView(viewModel: inboxViewModel) + HomeFeedContainerView(viewModel: inboxViewModel, isEditMode: $isEditMode) .navigationBarTitleDisplayMode(.inline) .navigationViewStyle(.stack) }.tag("inbox") @@ -101,8 +103,10 @@ struct LibraryTabView: View { .frame(height: 1) .frame(maxWidth: .infinity) } - CustomTabBar(selectedTab: $selectedTab, hideFollowingTab: hideFollowingTab) - .padding(0) + if isEditMode != .active { + CustomTabBar(selectedTab: $selectedTab, hideFollowingTab: hideFollowingTab) + .padding(0) + } } .fullScreenCover(isPresented: $showExpandedAudioPlayer) { ExpandedAudioPlayer( diff --git a/apple/OmnivoreKit/Sources/App/Views/Profile/FiltersView.swift b/apple/OmnivoreKit/Sources/App/Views/Profile/FiltersView.swift index bd02c3ceb..9ee16acdc 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Profile/FiltersView.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Profile/FiltersView.swift @@ -84,6 +84,11 @@ struct FiltersView: View { .onReceive(NotificationCenter.default.publisher(for: Notification.Name("ScrollToTop"))) { _ in dismiss() } + .onChange(of: viewModel.hideFollowingTab) { _ in + UserDefaults.standard.setValue(nil, forKey: "lastSelected") + UserDefaults.standard.setValue(nil, forKey: "lastSelectedFilter-inbox") + UserDefaults.standard.setValue(nil, forKey: "lastSelectedFilter-following") + } } private var innerBody: some View {