Only allow editing of loraconfig if there are changes

This commit is contained in:
Garth Vander Houwen 2022-06-20 23:48:47 -07:00
parent a9e0b03a75
commit aaf6ee66eb

View file

@ -188,6 +188,10 @@ struct LoRaConfig: View {
var node: NodeInfoEntity
@State private var isPresentingSaveConfirm: Bool = false
@State var initialLoad: Bool = true
@State var loadComplete: Bool = false
@State var region = 0
@State var modemPreset = 0
@State var hopLimit = 0
@ -280,30 +284,38 @@ struct LoRaConfig: View {
})
.onAppear {
self.bleManager.context = context
}
.task {
do {
if self.initialLoad{
self.bleManager.context = context
print("got hops \(node.loRaConfig?.hopLimit ?? 0)")
self.hopLimit = Int(node.loRaConfig?.hopLimit ?? 0)
self.region = Int(node.loRaConfig?.regionCode ?? 0)
self.modemPreset = Int(node.loRaConfig?.modemPreset ?? 0)
self.hasChanges = false
} catch {
print("Failed to load node data")
self.initialLoad = false
self.loadComplete = true
}
}
.onChange(of: region) { newRegion in
hasChanges = true
if newRegion != node.loRaConfig!.regionCode {
hasChanges = true
}
}
.onChange(of: modemPreset) { newModemPreset in
hasChanges = true
if newModemPreset != node.loRaConfig!.modemPreset {
hasChanges = true
}
}
.onChange(of: hopLimit) { newHopLimit in
hasChanges = true
if newHopLimit != node.loRaConfig!.hopLimit {
hasChanges = true
}
}
.navigationViewStyle(StackNavigationViewStyle())