summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-28 03:46:41 -0800
committerFuwn <[email protected]>2025-02-28 03:46:41 -0800
commit93fd5a0f53ab9dc30a04f758e17b5c7363f531fe (patch)
tree0a164c694668c26964332785295ab6e219e374e4
parentfeat: Development commit (diff)
downloadsora-testing-93fd5a0f53ab9dc30a04f758e17b5c7363f531fe.tar.xz
sora-testing-93fd5a0f53ab9dc30a04f758e17b5c7363f531fe.zip
feat: Development commit
-rw-r--r--Sora/Views/ContentView.swift17
-rw-r--r--Sora/Views/MainView.swift4
-rw-r--r--Sora/Views/Post/Grid/PostGridSearchHistoryView.swift8
-rw-r--r--Sora/Views/Post/Grid/PostGridView.swift6
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)
}
}