error alert cleanup
This commit is contained in:
@@ -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
|
||||
isShowingErrorAlert = false
|
||||
}
|
||||
} message: { item in
|
||||
Text(item.playbackError ?? "Unknown error")
|
||||
}
|
||||
}, message: {
|
||||
if let message = errorAlertItem?.playbackError {
|
||||
Text(message)
|
||||
} else {
|
||||
Text("Unknown error")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user