diff --git a/Features/Backup/BackupView.swift b/Features/Backup/BackupView.swift index 6d669af..3e99af4 100644 --- a/Features/Backup/BackupView.swift +++ b/Features/Backup/BackupView.swift @@ -61,17 +61,16 @@ struct BackupView: View { heroView .animation(.spring(response: 0.4, dampingFraction: 0.85), value: ringPage) + // ─── Page indicator ──────────────────────────────────── + pageIndicator + .padding(.bottom, 8) + // ─── Scrollable stats / detail ───────────────────────── ScrollView(.vertical, showsIndicators: false) { belowContent - .padding(.bottom, 16) + .padding(.bottom, 24) } .refreshable { await triggerRefreshAndBackup() } - - // ─── Page navigation ─────────────────────────────────── - pageNav - .padding(.horizontal, AppTheme.hPad) - .padding(.bottom, 24) } // ─── Menu button — floats above scroll content ───────────── @@ -679,7 +678,7 @@ struct BackupView: View { circleStatusRow .padding(.horizontal, AppTheme.hPad) - .padding(.bottom, 20) + .padding(.bottom, 10) } else { // Match page 0 spacing so the ring stays at the same Y Color.clear.frame(height: 60) @@ -929,45 +928,40 @@ struct BackupView: View { .padding(.bottom, 8) } - // MARK: — Page navigation + // MARK: — Page indicator - private var pageNav: some View { - HStack { - Button { - withAnimation(.spring(response: 0.4, dampingFraction: 0.85)) { - ringPage = (ringPage - 1 + ringPageCount) % ringPageCount + private var pageIndicator: some View { + VStack(spacing: 9) { + // Segmented bar — one pill per page, active = amber + HStack(spacing: 5) { + ForEach(0..