From 67c3c8e84de9b310d9a243ce724d08e1daaa5fca Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 1 Nov 2023 15:57:24 +0800 Subject: [PATCH] Resize label flow layout after labels change --- .../Sources/Views/FeedItem/LabelsFlowLayout.swift | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/apple/OmnivoreKit/Sources/Views/FeedItem/LabelsFlowLayout.swift b/apple/OmnivoreKit/Sources/Views/FeedItem/LabelsFlowLayout.swift index 424641247..633febdca 100644 --- a/apple/OmnivoreKit/Sources/Views/FeedItem/LabelsFlowLayout.swift +++ b/apple/OmnivoreKit/Sources/Views/FeedItem/LabelsFlowLayout.swift @@ -54,19 +54,20 @@ struct LabelsFlowLayout: View { return result }) } - }.background(viewCalculator()) + }.background(viewHeightReader($totalHeight)) } private func item(for item: LinkedItemLabel) -> some View { LibraryItemLabelView(text: item.name!, color: Color(hex: item.color!)!) } - func viewCalculator() -> some View { - GeometryReader { geometry in - Color.clear.onAppear { - let rect = geometry.frame(in: .local) - self.totalHeight = rect.size.height + private func viewHeightReader(_ binding: Binding) -> some View { + GeometryReader { geometry -> Color in + let rect = geometry.frame(in: .local) + DispatchQueue.main.async { + binding.wrappedValue = rect.size.height } + return .clear } } }