Network Reconnection Delay

Nucleic-Session: 4BE3E40C-E939-444C-8AED-93C0AFE13C07
Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
2026-07-06 12:46:24 -07:00
co-authored by Nucleic
parent 303cdcc86d
commit d07ab7ec98
@@ -375,6 +375,28 @@ struct SessionDetailView: View {
} }
} }
/// The placeholder shown while an approval's details are still loading — mirrors the approval
/// card's frame (orange warning header, glass surface) so the real `ApprovalCardView` swaps in
/// without a jump. Non-actionable: the real approval id isn't known yet, so there's nothing to
/// Allow/Deny until the snapshot lands.
private var approvalLoadingCard: some View {
VStack(alignment: .leading, spacing: 10) {
HStack(spacing: 6) {
Image(systemName: "exclamationmark.triangle.fill").foregroundStyle(.orange)
Text("Permission requested").font(.subheadline.weight(.semibold))
}
HStack(spacing: 8) {
ProgressView().controlSize(.small)
Text("Connecting to your Mac to load this approval…")
.font(.footnote).foregroundStyle(.secondary)
Spacer(minLength: 0)
}
}
.frame(maxWidth: .infinity, alignment: .leading)
.padding(.horizontal, 14).padding(.vertical, 12)
.glassSurface(cornerRadius: 26)
}
/// A queued follow-up shown above the composer: its text (or attachment names) with the /// A queued follow-up shown above the composer: its text (or attachment names) with the
/// attachments as chips, and — at control scope — a ✕ that cancels just this message. /// attachments as chips, and — at control scope — a ✕ that cancels just this message.
@ViewBuilder @ViewBuilder