pass detail information in deep links

This commit is contained in:
Garth Vander Houwen 2024-08-02 07:23:20 -07:00
parent 3dbe92c599
commit f02926b43b
3 changed files with 11 additions and 11 deletions

View file

@ -188,7 +188,7 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext)
subtitle: "\(newUser.longName ?? "unknown".localized)",
content: "New Node has been discovered",
target: "nodes",
path: "meshtastic:///nodes?nodenum=\(newUser.num)"
path: "meshtastic:///nodes?nodenum=\(newUser.num)&detail=nodeMap"
)
]
manager.schedule()
@ -235,7 +235,7 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext)
fetchedNode[0].channel = Int32(packet.channel)
}
if let nodeInfoMessage = try? NodeInfo(serializedData: packet.decoded.payload) {
if let nodeInfoMessage = try? NodeInfo(serializedBytes: packet.decoded.payload) {
fetchedNode[0].hopsAway = Int32(nodeInfoMessage.hopsAway)
fetchedNode[0].favorite = nodeInfoMessage.isFavorite

View file

@ -79,14 +79,14 @@ class Router: ObservableObject {
}
func routeNodes(_ components: URLComponents) {
let nodeId = components.queryItems?
.first(where: { $0.name == "nodenum" })?
.value
.flatMap(Int64.init)
let detail = components.queryItems?
.first(where: { $0.name == "detail" })?
.value
route(to: .nodes(NodeListNavigationState(selectedNodeNum: nodeId, details: detail != nil ? NodeDetails(rawValue: detail!) : nil)))
let nodeId = components.queryItems?
.first(where: { $0.name == "nodenum" })?
.value
.flatMap(Int64.init)
let detail = components.queryItems?
.first(where: { $0.name == "detail" })?
.value
route(to: .nodes(NodeListNavigationState(selectedNodeNum: nodeId, details: detail != nil ? NodeDetails(rawValue: detail!) : nil)))
}
private func routeMap(_ components: URLComponents) {

View file

@ -251,7 +251,7 @@ struct NodeList: View {
await searchNodeList()
}
}
.onChange(of: router.navigationState) { _ in
.onChange(of: router.navigationState) { state in
// Handle deep link routing
if case .nodes(let selected) = router.navigationState {
self.selectedNode = selected?.selectedNodeNum.flatMap {