feat(ui): replace loading indicators with Apple-style LoadingSpinner
- Add LoadingSpinner component with small/medium/large sizes using system gray color - Add LoadingPlaceholder for skeleton loading states - Add LoadingSheet for full-screen blocking overlays - Replace ThemedSpinner/ThemedSpinnerCompact across all views - Remove deprecated loading components from AnimatedComponents.swift - Delete LoadingTextGenerator.swift - Fix PhotoImportView layout to fill full width Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -45,11 +45,10 @@ struct ReviewStep: View {
|
||||
.clipShape(RoundedRectangle(cornerRadius: Theme.CornerRadius.medium))
|
||||
|
||||
Button(action: onPlan) {
|
||||
HStack {
|
||||
HStack(spacing: Theme.Spacing.sm) {
|
||||
if isPlanning {
|
||||
ProgressView()
|
||||
.scaleEffect(0.8)
|
||||
.tint(.white)
|
||||
LoadingSpinner(size: .small)
|
||||
.colorScheme(.dark) // Force white on orange button
|
||||
}
|
||||
Text(isPlanning ? "Planning..." : "Plan My Trip")
|
||||
.fontWeight(.semibold)
|
||||
|
||||
@@ -28,14 +28,8 @@ struct SportsStep: View {
|
||||
)
|
||||
|
||||
if isLoading {
|
||||
HStack {
|
||||
ProgressView()
|
||||
.scaleEffect(0.8)
|
||||
Text("Checking game availability...")
|
||||
.font(.caption)
|
||||
.foregroundStyle(Theme.textMuted(colorScheme))
|
||||
}
|
||||
.padding(.vertical, Theme.Spacing.sm)
|
||||
LoadingSpinner(size: .small, label: "Checking availability...")
|
||||
.padding(.vertical, Theme.Spacing.sm)
|
||||
}
|
||||
|
||||
LazyVGrid(columns: columns, spacing: Theme.Spacing.sm) {
|
||||
|
||||
Reference in New Issue
Block a user