Dont show the iPhone tab bar in edit mode

This commit is contained in:
Jackson Harper
2024-01-09 14:20:04 +08:00
parent ecb5fbf112
commit 80f0150512
5 changed files with 19 additions and 41 deletions

View File

@ -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<String>()
init(viewModel: HomeFeedViewModel) {
init(viewModel: HomeFeedViewModel, isEditMode: Binding<EditMode>) {
_viewModel = ObservedObject(wrappedValue: viewModel)
_isEditMode = isEditMode
}
func loadItems(isRefresh: Bool) {

View File

@ -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
}
}

View File

@ -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)
}

View File

@ -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(

View File

@ -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 {