diff options
| author | Fuwn <[email protected]> | 2025-02-28 03:46:41 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-28 03:46:41 -0800 |
| commit | 93fd5a0f53ab9dc30a04f758e17b5c7363f531fe (patch) | |
| tree | 0a164c694668c26964332785295ab6e219e374e4 | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-93fd5a0f53ab9dc30a04f758e17b5c7363f531fe.tar.xz sora-testing-93fd5a0f53ab9dc30a04f758e17b5c7363f531fe.zip | |
feat: Development commit
| -rw-r--r-- | Sora/Views/ContentView.swift | 17 | ||||
| -rw-r--r-- | Sora/Views/MainView.swift | 4 | ||||
| -rw-r--r-- | Sora/Views/Post/Grid/PostGridSearchHistoryView.swift | 8 | ||||
| -rw-r--r-- | Sora/Views/Post/Grid/PostGridView.swift | 6 |
4 files changed, 24 insertions, 11 deletions
diff --git a/Sora/Views/ContentView.swift b/Sora/Views/ContentView.swift index c907ff3..800a008 100644 --- a/Sora/Views/ContentView.swift +++ b/Sora/Views/ContentView.swift @@ -2,7 +2,7 @@ import SwiftUI struct ContentView: View { @EnvironmentObject var manager: BooruManager - @State private var selectedTabIndex: Int = 0 + @Binding var selectedTab: Int @State private var tabs = [ "Posts", "Bookmarks", @@ -11,24 +11,27 @@ struct ContentView: View { var body: some View { #if os(macOS) NavigationSplitView { - List(selection: $selectedTabIndex) { + List(selection: $selectedTab) { ForEach(Array(tabs.enumerated()), id: \.offset) { index, element in NavigationLink(value: index) { Text(element) } } } } content: { - switch selectedTabIndex { + switch selectedTab { case 1: - BookmarksView(selectedTab: $selectedTabIndex) + BookmarksView(selectedTab: $selectedTab) case 2: - PostGridSearchHistoryView(selectedTab: $selectedTabIndex) + PostGridSearchHistoryView( + selectedTab: $selectedTab, + isPresented: .constant(false) + ) case 3: SettingsView() default: - PostGridView() + PostGridView(selectedTab: $selectedTab) } } detail: { if let post = manager.selectedPost { @@ -44,7 +47,7 @@ struct ContentView: View { #endif #else NavigationStack { - PostGridView() + PostGridView(selectedTab: $selectedTab) .navigationDestination( isPresented: Binding( get: { manager.selectedPost != nil }, diff --git a/Sora/Views/MainView.swift b/Sora/Views/MainView.swift index 73eeed5..8ae607c 100644 --- a/Sora/Views/MainView.swift +++ b/Sora/Views/MainView.swift @@ -22,10 +22,10 @@ struct MainView: View { @ViewBuilder private var platformSpecificContent: some View { #if os(macOS) - ContentView() + ContentView(selectedTab: $selectedTab) #else TabView(selection: $selectedTab) { - ContentView() + ContentView(selectedTab: $selectedTab) .tabItem { Label("Posts", systemImage: "rectangle.stack") } .tag(0) diff --git a/Sora/Views/Post/Grid/PostGridSearchHistoryView.swift b/Sora/Views/Post/Grid/PostGridSearchHistoryView.swift index 2f95118..2816d35 100644 --- a/Sora/Views/Post/Grid/PostGridSearchHistoryView.swift +++ b/Sora/Views/Post/Grid/PostGridSearchHistoryView.swift @@ -5,6 +5,7 @@ struct PostGridSearchHistoryView: View { @EnvironmentObject private var settings: SettingsManager @State private var searchText: String = "" @Binding var selectedTab: Int + @Binding var isPresented: Bool var filteredHistory: [BooruSearchQuery] { guard !searchText.isEmpty else { @@ -43,6 +44,8 @@ struct PostGridSearchHistoryView: View { manager.searchText = query.tags.joined(separator: " ") selectedTab = 0 + isPresented.toggle() + if previousProvider == settings.preferredBooru { manager.performSearch() } @@ -70,7 +73,10 @@ struct PostGridSearchHistoryView: View { } #Preview { - PostGridSearchHistoryView(selectedTab: .constant(0)) + PostGridSearchHistoryView( + selectedTab: .constant(0), + isPresented: .constant(true) + ) .environmentObject(SettingsManager()) .environmentObject(BooruManager(.safebooru)) } diff --git a/Sora/Views/Post/Grid/PostGridView.swift b/Sora/Views/Post/Grid/PostGridView.swift index 76bfa7c..b54863f 100644 --- a/Sora/Views/Post/Grid/PostGridView.swift +++ b/Sora/Views/Post/Grid/PostGridView.swift @@ -5,6 +5,7 @@ struct PostGridView: View { @EnvironmentObject var settings: SettingsManager @EnvironmentObject var manager: BooruManager @State private var isSearchHistoryPresented = false + @Binding var selectedTab: Int @Environment(\.isSearching) private var isSearching @@ -112,7 +113,10 @@ struct PostGridView: View { } .scrollDisabled(manager.isLoading) .sheet(isPresented: $isSearchHistoryPresented) { - PostGridSearchHistoryView(selectedTab: .constant(0)) + PostGridSearchHistoryView( + selectedTab: $selectedTab, + isPresented: $isSearchHistoryPresented + ) .frame(minHeight: 250) } } |