error alert cleanup
This commit is contained in:
@@ -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")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user