53 lines · 1.6 KB · Swift
RawDownload
import SwiftUI struct ProviderErrorDisplay {    let preview: String    let full: String} @MainActorstruct 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("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 ? "Hide details" : "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)    }}