mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
Dismiss selected node after deleting it
Dont allow deleting the connected node Hide 3 context menu items that need refactoring.
This commit is contained in:
parent
e4299aea70
commit
a9e189be9a
3 changed files with 64 additions and 48 deletions
|
|
@ -5196,6 +5196,9 @@
|
|||
},
|
||||
"Delete Node" : {
|
||||
|
||||
},
|
||||
"Delete Node?" : {
|
||||
|
||||
},
|
||||
"Description" : {
|
||||
|
||||
|
|
|
|||
|
|
@ -10,42 +10,55 @@ struct DeleteNodeButton: View {
|
|||
var connectedNode: NodeInfoEntity
|
||||
|
||||
var node: NodeInfoEntity
|
||||
|
||||
@Environment(\.dismiss) private var dismiss
|
||||
|
||||
@State
|
||||
private var isPresentingAlert = false
|
||||
@State private var isPresentingAlert = false
|
||||
|
||||
var body: some View {
|
||||
Button(role: .destructive) {
|
||||
isPresentingAlert = true
|
||||
} label: {
|
||||
Label {
|
||||
Text("Delete Node")
|
||||
} icon: {
|
||||
Image(systemName: "trash")
|
||||
.symbolRenderingMode(.multicolor)
|
||||
}
|
||||
}
|
||||
.confirmationDialog(
|
||||
"are.you.sure",
|
||||
isPresented: $isPresentingAlert,
|
||||
titleVisibility: .visible
|
||||
) {
|
||||
Button("Delete Node", role: .destructive) {
|
||||
guard let deleteNode = getNodeInfo(
|
||||
id: node.num,
|
||||
context: context
|
||||
) else {
|
||||
Logger.data.error("Unable to find node info to delete node \(node.num)")
|
||||
return
|
||||
var body: some View {
|
||||
if node.num != connectedNode.num {
|
||||
Button(role: .destructive) {
|
||||
isPresentingAlert = true
|
||||
} label: {
|
||||
Label {
|
||||
Text("Delete Node")
|
||||
} icon: {
|
||||
Image(systemName: "trash")
|
||||
.symbolRenderingMode(.multicolor)
|
||||
}
|
||||
let success = bleManager.removeNode(
|
||||
node: deleteNode,
|
||||
connectedNodeNum: connectedNode.num
|
||||
)
|
||||
if !success {
|
||||
Logger.data.error("Failed to delete node \(deleteNode.user?.longName ?? "unknown".localized)")
|
||||
}
|
||||
.alert(
|
||||
"are.you.sure",
|
||||
isPresented: $isPresentingAlert
|
||||
) {
|
||||
Button("OK") { }.keyboardShortcut(.defaultAction)
|
||||
} message: {
|
||||
Text("Delete Node?")
|
||||
}
|
||||
.confirmationDialog(
|
||||
"are.you.sure",
|
||||
isPresented: $isPresentingAlert,
|
||||
titleVisibility: .visible
|
||||
) {
|
||||
Button("Delete Node", role: .destructive) {
|
||||
guard let deleteNode = getNodeInfo(
|
||||
id: node.num,
|
||||
context: context
|
||||
) else {
|
||||
Logger.data.error("Unable to find node info to delete node \(node.num)")
|
||||
return
|
||||
}
|
||||
let success = bleManager.removeNode(
|
||||
node: deleteNode,
|
||||
connectedNodeNum: connectedNode.num
|
||||
)
|
||||
if !success {
|
||||
Logger.data.error("Failed to delete node \(deleteNode.user?.longName ?? "unknown".localized)")
|
||||
} else {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,22 +80,22 @@ struct NodeList: View {
|
|||
)
|
||||
}
|
||||
|
||||
if let connectedNode {
|
||||
ExchangePositionsButton(
|
||||
bleManager: bleManager,
|
||||
node: node
|
||||
)
|
||||
TraceRouteButton(
|
||||
bleManager: bleManager,
|
||||
node: node
|
||||
)
|
||||
DeleteNodeButton(
|
||||
bleManager: bleManager,
|
||||
context: context,
|
||||
connectedNode: connectedNode,
|
||||
node: node
|
||||
)
|
||||
}
|
||||
// if let connectedNode {
|
||||
// ExchangePositionsButton(
|
||||
// bleManager: bleManager,
|
||||
// node: node
|
||||
// )
|
||||
// TraceRouteButton(
|
||||
// bleManager: bleManager,
|
||||
// node: node
|
||||
// )
|
||||
// DeleteNodeButton(
|
||||
// bleManager: bleManager,
|
||||
// context: context,
|
||||
// connectedNode: connectedNode,
|
||||
// node: node
|
||||
// )
|
||||
// }
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue