import SwiftUI struct ProviderErrorDisplay { let preview: String let full: String } @MainActor struct ProviderErrorView: View { let title: String let display: ProviderErrorDisplay @Binding var isExpanded: Bool let onCopy: () -> Void var body: some View { VStack(alignment: .leading, spacing: 6) { HStack(alignment: .firstTextBaseline, spacing: 8) { Text(self.title) .font(.footnote.weight(.semibold)) .foregroundStyle(.secondary) Spacer() Button { self.onCopy() } label: { Image(systemName: "doc.on.doc") } .buttonStyle(.plain) .foregroundStyle(.secondary) .help(L("Copy error")) } Text(self.display.preview) .font(.footnote) .foregroundStyle(.secondary) .lineLimit(3) .fixedSize(horizontal: false, vertical: true) if self.display.preview != self.display.full { Button(self.isExpanded ? L("Hide details") : L("Show details")) { self.isExpanded.toggle() } .buttonStyle(.link) .font(.footnote) } if self.isExpanded { Text(self.display.full) .font(.footnote) .textSelection(.enabled) .fixedSize(horizontal: false, vertical: true) } } .padding(.leading, 2) } }