From 2a5e530af2d8e1ceb64ac384bcef0ba5ca139930 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Wed, 18 Feb 2026 15:55:25 -0800 Subject: fix: prevent thumbnail grid launch crash from column and data drift --- Sora/Views/Shared/ThumbnailGridView.swift | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'Sora') diff --git a/Sora/Views/Shared/ThumbnailGridView.swift b/Sora/Views/Shared/ThumbnailGridView.swift index a7130c2..ec8cd10 100644 --- a/Sora/Views/Shared/ThumbnailGridView.swift +++ b/Sora/Views/Shared/ThumbnailGridView.swift @@ -8,12 +8,27 @@ struct ThumbnailGridView: View { let columnsData: [[Item]] let content: (Item) -> Content + private var resolvedColumnCount: Int { + max(columnCount, 1) + } + + private var resolvedColumnsData: [[Item]] { + let clippedColumnsData = Array(columnsData.prefix(resolvedColumnCount)) + let missingColumnCount = resolvedColumnCount - clippedColumnsData.count + + if missingColumnCount <= 0 { + return clippedColumnsData + } + + return clippedColumnsData + Array(repeating: [], count: missingColumnCount) + } + var body: some View { if useAlternativeGrid { HStack(alignment: .top) { - ForEach(0..: View { content(item) .id(item.id) } - .gridStyle(columns: columnCount) + .gridStyle(columns: resolvedColumnCount) .transaction { $0.animation = nil } #if os(macOS) .padding(8) -- cgit v1.2.3