error alert cleanup

This commit is contained in:
2025-11-15 18:20:03 -08:00
parent cfc6e6c411
commit 0916de60f3

View File

@@ -58,6 +58,7 @@ struct MediaListView: View
{
@Binding var model: MediaListViewModel
@State private var errorAlertItem: MediaListItem? = nil
@State private var isShowingErrorAlert: Bool = false
var body: some View {
VStack {
@@ -76,6 +77,7 @@ struct MediaListView: View
Button {
if let _ = item.playbackError {
errorAlertItem = item
isShowingErrorAlert = true
} else {
switch model.mode {
case .playlist:
@@ -135,28 +137,20 @@ struct MediaListView: View
}
}
}
.alert(.playbackError, isPresented: Binding(get: {
errorAlertItem != nil
}, set: { newValue in
if !newValue { errorAlertItem = nil }
}), actions: {
.alert(.playbackError, isPresented: $isShowingErrorAlert, presenting: errorAlertItem) { item in
Button(.cancel, role: .cancel) {
errorAlertItem = nil
isShowingErrorAlert = false
}
if let item = errorAlertItem {
Button(.delete, role: .destructive) {
model.items.removeAll { $0.id == item.id }
model.onDelete(item)
errorAlertItem = nil
}
Button(.delete, role: .destructive) {
model.items.removeAll { $0.id == item.id }
model.onDelete(item)
errorAlertItem = nil
isShowingErrorAlert = false
}
}, message: {
if let message = errorAlertItem?.playbackError {
Text(message)
} else {
Text("Unknown error")
}
})
} message: { item in
Text(item.playbackError ?? "Unknown error")
}
}
}
}