diff --git a/Basic-Car-Maintenance/Shared/Localizable.xcstrings b/Basic-Car-Maintenance/Shared/Localizable.xcstrings index e3b6abb..c2eb888 100644 --- a/Basic-Car-Maintenance/Shared/Localizable.xcstrings +++ b/Basic-Car-Maintenance/Shared/Localizable.xcstrings @@ -731,6 +731,22 @@ } } }, + "Can't Delete Last Vehicle" : { + "localizations" : { + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Невозможно удалить последний автомобиль" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Son Araç Silinemiyor" + } + } + } + }, "Cancel" : { "localizations" : { "be" : { @@ -3934,6 +3950,9 @@ } } }, + "The last vehicle can't be deleted. Please add a new vehicle before removing this one." : { + "comment" : "Alert message preventing users from deleting their last vehicle" + }, "The title of the event" : { "comment" : "Maintenance event title text field label placeholder", "localizations" : { @@ -4413,7 +4432,14 @@ } }, "Update Vehicle Info" : { - + "localizations" : { + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Araç Bilgilerini Güncelle" + } + } + } }, "Vehicle" : { "comment" : "Maintenance event vehicle picker header", diff --git a/Basic-Car-Maintenance/Shared/Settings/Views/SettingsView.swift b/Basic-Car-Maintenance/Shared/Settings/Views/SettingsView.swift index c2b4455..c0ef0a2 100644 --- a/Basic-Car-Maintenance/Shared/Settings/Views/SettingsView.swift +++ b/Basic-Car-Maintenance/Shared/Settings/Views/SettingsView.swift @@ -19,6 +19,7 @@ struct SettingsView: View { @State private var viewModel: SettingsViewModel @State private var isShowingAddVehicle = false @State private var showDeleteVehicleError = false + @State private var showDeleteVehicleAlert = false @State private var showAddVehicleError = false @State private var errorDetails: Error? @State private var copiedAppVersion: Bool = false @@ -117,7 +118,11 @@ struct SettingsView: View { Button(role: .destructive) { Task { do { - try await viewModel.deleteVehicle(vehicle) + if viewModel.vehicles.count > 1 { + try await viewModel.deleteVehicle(vehicle) + } else { + showDeleteVehicleAlert = true + } } catch { errorDetails = error showDeleteVehicleError = true @@ -240,6 +245,13 @@ struct SettingsView: View { comment: "Label to display error details.") } } + .alert("Can't Delete Last Vehicle", isPresented: $showDeleteVehicleAlert) { + Button("OK", role: .cancel) { + showDeleteVehicleAlert = false + } + } message: { + Text("The last vehicle can't be deleted. Please add a new vehicle before removing this one.", comment: "Alert message preventing users from deleting their last vehicle") + } .navigationTitle(Text("Settings", comment: "Label to display settings.")) .task { await viewModel.getVehicles()