fix(sync): add foreground sync, remove manual sync button
- Add scenePhase observer to sync when app returns to foreground - Remove misleading "Sync Schedules" button from Settings (it only reloaded local data, didn't actually sync from CloudKit) - Fix GamesHistoryView to refresh list after deleting a visit Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,9 +21,6 @@ struct SettingsView: View {
|
||||
// Travel Preferences
|
||||
travelSection
|
||||
|
||||
// Data Sync
|
||||
dataSection
|
||||
|
||||
// About
|
||||
aboutSection
|
||||
|
||||
@@ -149,57 +146,6 @@ struct SettingsView: View {
|
||||
.listRowBackground(Theme.cardBackground(colorScheme))
|
||||
}
|
||||
|
||||
// MARK: - Data Section
|
||||
|
||||
private var dataSection: some View {
|
||||
Section {
|
||||
Button {
|
||||
Task {
|
||||
await viewModel.syncSchedules()
|
||||
}
|
||||
} label: {
|
||||
HStack {
|
||||
Label("Sync Schedules", systemImage: "arrow.triangle.2.circlepath")
|
||||
|
||||
Spacer()
|
||||
|
||||
if viewModel.isSyncing {
|
||||
ThemedSpinnerCompact(size: 18)
|
||||
}
|
||||
}
|
||||
}
|
||||
.disabled(viewModel.isSyncing)
|
||||
|
||||
if let lastSync = viewModel.lastSyncDate {
|
||||
HStack {
|
||||
Text("Last Sync")
|
||||
Spacer()
|
||||
Text(lastSync, style: .relative)
|
||||
.foregroundStyle(.secondary)
|
||||
}
|
||||
}
|
||||
|
||||
if let error = viewModel.syncError {
|
||||
HStack {
|
||||
Image(systemName: "exclamationmark.triangle")
|
||||
.foregroundStyle(.red)
|
||||
Text(error)
|
||||
.font(.caption)
|
||||
.foregroundStyle(.red)
|
||||
}
|
||||
}
|
||||
} header: {
|
||||
Text("Data")
|
||||
} footer: {
|
||||
#if targetEnvironment(simulator)
|
||||
Text("Using stub data (Simulator mode)")
|
||||
#else
|
||||
Text("Schedule data is synced from CloudKit.")
|
||||
#endif
|
||||
}
|
||||
.listRowBackground(Theme.cardBackground(colorScheme))
|
||||
}
|
||||
|
||||
// MARK: - About Section
|
||||
|
||||
private var aboutSection: some View {
|
||||
|
||||
Reference in New Issue
Block a user