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