From bd37eb9db43a8ae99cf032797f4c3b04e77e51d0 Mon Sep 17 00:00:00 2001 From: Francesco <100066266+cranci1@users.noreply.github.com> Date: Sat, 31 May 2025 17:42:27 +0200 Subject: [PATCH] fixed search result grid --- Sora/Views/SearchView/SearchComponents.swift | 6 +-- Sora/Views/SearchView/SearchResultsGrid.swift | 45 ++++++++++--------- Sora/Views/SearchView/SearchView.swift | 8 ++-- .../SearchView/SearchViewComponents.swift | 3 +- .../SettingsSubViews/SettingsViewData.swift | 5 --- 5 files changed, 32 insertions(+), 35 deletions(-) diff --git a/Sora/Views/SearchView/SearchComponents.swift b/Sora/Views/SearchView/SearchComponents.swift index 920af2e..5958fbc 100644 --- a/Sora/Views/SearchView/SearchComponents.swift +++ b/Sora/Views/SearchView/SearchComponents.swift @@ -18,19 +18,19 @@ struct SearchItem: Identifiable { struct SearchHistorySection: View { let title: String let content: Content - + init(title: String, @ViewBuilder content: () -> Content) { self.title = title self.content = content() } - + var body: some View { VStack(alignment: .leading, spacing: 8) { Text(title.uppercased()) .font(.footnote) .foregroundStyle(Color.secondary) .padding(.horizontal, 20) - + VStack(spacing: 0) { content } diff --git a/Sora/Views/SearchView/SearchResultsGrid.swift b/Sora/Views/SearchView/SearchResultsGrid.swift index 5a2394b..568de08 100644 --- a/Sora/Views/SearchView/SearchResultsGrid.swift +++ b/Sora/Views/SearchView/SearchResultsGrid.swift @@ -12,6 +12,7 @@ struct SearchResultsGrid: View { let items: [SearchItem] let columns: [GridItem] let selectedModule: ScrapingModule + let cellWidth: CGFloat var body: some View { LazyVGrid(columns: columns, spacing: 16) { @@ -21,33 +22,33 @@ struct SearchResultsGrid: View { KFImage(URL(string: item.imageUrl)) .resizable() .aspectRatio(0.72, contentMode: .fill) - .frame(width: 162, height: 243) + .frame(width: cellWidth, height: cellWidth * 1.5) .cornerRadius(12) .clipped() VStack { + Spacer() + HStack { + Text(item.title) + .lineLimit(2) + .foregroundColor(.white) + .multilineTextAlignment(.leading) Spacer() - HStack { - Text(item.title) - .lineLimit(2) - .foregroundColor(.white) - .multilineTextAlignment(.leading) - Spacer() - } - .padding(12) - .background( - LinearGradient( - colors: [ - .black.opacity(0.7), - .black.opacity(0.0) - ], - startPoint: .bottom, - endPoint: .top - ) - .shadow(color: .black, radius: 4, x: 0, y: 2) - ) } - .frame(width: 162) + .padding(12) + .background( + LinearGradient( + colors: [ + .black.opacity(0.7), + .black.opacity(0.0) + ], + startPoint: .bottom, + endPoint: .top + ) + .shadow(color: .black, radius: 4, x: 0, y: 2) + ) + } + .frame(width: cellWidth) } .clipShape(RoundedRectangle(cornerRadius: 12)) .padding(4) @@ -57,4 +58,4 @@ struct SearchResultsGrid: View { .padding(.top) .padding() } -} +} diff --git a/Sora/Views/SearchView/SearchView.swift b/Sora/Views/SearchView/SearchView.swift index e5509fa..7748dae 100644 --- a/Sora/Views/SearchView/SearchView.swift +++ b/Sora/Views/SearchView/SearchView.swift @@ -39,10 +39,6 @@ struct SearchView: View { @State private var saveDebounceTimer: Timer? @State private var searchDebounceTimer: Timer? - private var columns: [GridItem] { - Array(repeating: GridItem(.flexible(), spacing: 16), count: columnsCount) - } - init(searchQuery: Binding) { self._searchQuery = searchQuery } @@ -52,6 +48,10 @@ struct SearchView: View { return moduleManager.modules.first { $0.id.uuidString == id } } + private let columns = [ + GridItem(.adaptive(minimum: 150), spacing: 12) + ] + private var columnsCount: Int { if UIDevice.current.userInterfaceIdiom == .pad { let isLandscape = UIScreen.main.bounds.width > UIScreen.main.bounds.height diff --git a/Sora/Views/SearchView/SearchViewComponents.swift b/Sora/Views/SearchView/SearchViewComponents.swift index 803846d..98333cd 100644 --- a/Sora/Views/SearchView/SearchViewComponents.swift +++ b/Sora/Views/SearchView/SearchViewComponents.swift @@ -174,7 +174,8 @@ struct SearchContent: View { SearchResultsGrid( items: searchItems, columns: columns, - selectedModule: module + selectedModule: module, + cellWidth: cellWidth ) } else { SearchStateView( diff --git a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewData.swift b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewData.swift index fd088d4..0e06536 100644 --- a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewData.swift +++ b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewData.swift @@ -203,11 +203,6 @@ struct SettingsViewData: View { } VStack { - Spacer() - Spacer() - Text("Current Metadata Cache Size") - Spacer() - if isCalculatingSize { ProgressView() .scaleEffect(0.7)