import SwiftUI struct ContentView: View { @EnvironmentObject var manager: BooruManager @Binding var selectedTab: Int @State private var tabs = [ "Posts", "Search History", "Bookmarks", ] var body: some View { #if os(macOS) NavigationSplitView { List(selection: $selectedTab) { ForEach(Array(tabs.enumerated()), id: \.offset) { index, element in NavigationLink(value: index) { Text(element) } } } } content: { switch selectedTab { case 1: PostGridSearchHistoryView( selectedTab: $selectedTab, isPresented: .constant(false) ) case 2: BookmarksView(selectedTab: $selectedTab) case 3: SettingsView() default: PostGridView(selectedTab: $selectedTab) } } detail: { if let post = manager.selectedPost { PostDetailsView(post: post) } else { Text("Select a Post") .foregroundColor(.secondary) } } #if DEBUG .onAppear { tabs.append("Settings") } #endif #else NavigationStack { PostGridView(selectedTab: $selectedTab) .navigationDestination( isPresented: Binding( get: { manager.selectedPost != nil }, set: { if !$0 { manager.selectedPost = nil } } ) ) { if let post = manager.selectedPost { PostDetailsView(post: post) } } } #endif } }