diff --git a/oAI/Views/Screens/ModelInfoView.swift b/oAI/Views/Screens/ModelInfoView.swift index 5b3aacf..d7df0f5 100644 --- a/oAI/Views/Screens/ModelInfoView.swift +++ b/oAI/Views/Screens/ModelInfoView.swift @@ -28,7 +28,6 @@ struct ModelInfoView: View { @Environment(\.dismiss) var dismiss @Bindable private var settings = SettingsService.shared - @State private var isDescriptionExpanded = false var body: some View { VStack(spacing: 0) { @@ -73,6 +72,13 @@ struct ModelInfoView: View { infoRow("Released", releaseDate.formatted(date: .abbreviated, time: .omitted)) } if let desc = model.description { + // Always shown in full, no truncate/expand toggle — Text with a lineLimit + // nested inside this view's ScrollView doesn't reliably compute wrapping/ + // truncation (a well-documented SwiftUI/AppKit quirk: without a fixedSize + // hint it hard-clips mid-word with no ellipsis; with one, sibling views in + // the same VStack — like the former "More…" button — can silently fail to + // lay out). The modal itself already scrolls, so a long description just + // means more scrolling, which sidesteps the whole bug class. VStack(alignment: .leading, spacing: 6) { Text("Description") .font(.subheadline.weight(.medium)) @@ -80,18 +86,7 @@ struct ModelInfoView: View { Text(desc) .font(.body) .foregroundColor(.primary) - .lineLimit(isDescriptionExpanded ? nil : 4) .textSelection(.enabled) - if desc.count > 250 { - Button(isDescriptionExpanded ? "Less" : "More…") { - withAnimation(.easeInOut(duration: 0.2)) { - isDescriptionExpanded.toggle() - } - } - .font(.callout) - .foregroundStyle(.blue) - .buttonStyle(.plain) - } } .padding(.leading, 4) }