From 2fdc06031c454bcbfecfc5edb89a9cdc17f038e8 Mon Sep 17 00:00:00 2001 From: Duong Thai Date: Sat, 14 Oct 2023 15:01:00 +0700 Subject: [PATCH] fix `SDKView` logic, hide the view when the content is empty --- Xcodes/Frontend/InfoPane/SDKsView.swift | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/Xcodes/Frontend/InfoPane/SDKsView.swift b/Xcodes/Frontend/InfoPane/SDKsView.swift index 5d229cb..78b99ae 100644 --- a/Xcodes/Frontend/InfoPane/SDKsView.swift +++ b/Xcodes/Frontend/InfoPane/SDKsView.swift @@ -10,19 +10,28 @@ import SwiftUI import struct XCModel.SDKs struct SDKsView: View { - let sdks: SDKs? + let content: String var body: some View { - if let sdks = sdks { + if content.isEmpty { + EmptyView() + } else { VStack(alignment: .leading) { Text("SDKs").font(.headline) - Text(Self.content(from: sdks)).font(.subheadline) + Text(content).font(.subheadline) } - } else { - EmptyView() } } + init(sdks: SDKs?) { + guard let sdks = sdks else { + self.content = "" + return + } + let content = Self.content(from: sdks) + self.content = content + } + static private func content(from sdks: SDKs) -> String { let content: String = [ ("macOS", sdks.macOS), @@ -41,6 +50,7 @@ struct SDKsView: View { // description for each type of compilers return "\($0.0): \(numbers.joined(separator: ", "))" }.joined(separator: "\n") + .trimmingCharacters(in: .whitespaces) return content } @@ -68,7 +78,7 @@ private struct WrapperView: View { SDKsView(sdks: sdks).border(.red) Spacer() Toggle(isOn: $isNil) { - Text("Is Nil?") + Text("Empty Content?") } } .frame(width: 200, height: 100)