Simplify change events to not force unwrap values

This commit is contained in:
Garth Vander Houwen 2024-08-11 21:20:10 -07:00
parent c0fd6cbf94
commit 6c6b44fdaa
7 changed files with 33 additions and 94 deletions

View file

@ -123,9 +123,7 @@ struct BluetoothConfig: View {
if $0 != node?.bluetoothConfig?.mode ?? -1 { hasChanges = true }
}
.onChange(of: fixedPin) { newFixedPin in
if node != nil && node?.bluetoothConfig != nil {
if newFixedPin != String(node!.bluetoothConfig!.fixedPin) { hasChanges = true }
}
if newFixedPin != String(node?.bluetoothConfig?.fixedPin ?? -1) { hasChanges = true }
}
.onChange(of: deviceLoggingEnabled) {
if $0 != node?.bluetoothConfig?.deviceLoggingEnabled { hasChanges = true }

View file

@ -262,24 +262,16 @@ struct DeviceConfig: View {
if $0 != node?.deviceConfig?.debugLogEnabled { hasChanges = true }
}
.onChange(of: buttonGPIO) { newButtonGPIO in
if node != nil && node?.deviceConfig != nil {
if newButtonGPIO != node!.deviceConfig!.buttonGpio { hasChanges = true }
}
if newButtonGPIO != node?.deviceConfig?.buttonGpio ?? -1 { hasChanges = true }
}
.onChange(of: buzzerGPIO) { newBuzzerGPIO in
if node != nil && node?.deviceConfig != nil {
if newBuzzerGPIO != node!.deviceConfig!.buttonGpio { hasChanges = true }
}
if newBuzzerGPIO != node?.deviceConfig?.buttonGpio ?? -1 { hasChanges = true }
}
.onChange(of: rebroadcastMode) { newRebroadcastMode in
if node != nil && node?.deviceConfig != nil {
if newRebroadcastMode != node!.deviceConfig!.rebroadcastMode { hasChanges = true }
}
if newRebroadcastMode != node?.deviceConfig?.rebroadcastMode ?? -1 { hasChanges = true }
}
.onChange(of: nodeInfoBroadcastSecs) { newNodeInfoBroadcastSecs in
if node != nil && node?.deviceConfig != nil {
if newNodeInfoBroadcastSecs != node!.deviceConfig!.nodeInfoBroadcastSecs { hasChanges = true }
}
if newNodeInfoBroadcastSecs != node?.deviceConfig?.nodeInfoBroadcastSecs ?? -1 { hasChanges = true }
}
.onChange(of: doubleTapAsButtonPress) {
if $0 != node?.deviceConfig?.doubleTapAsButtonPress { hasChanges = true }
@ -288,9 +280,7 @@ struct DeviceConfig: View {
if $0 != node?.deviceConfig?.isManaged { hasChanges = true }
}
.onChange(of: tzdef) { newTzdef in
if node != nil && node?.deviceConfig != nil {
if newTzdef != node!.deviceConfig!.tzdef { hasChanges = true }
}
if newTzdef != node?.deviceConfig?.tzdef { hasChanges = true }
}
}
func setDeviceValues() {

View file

@ -174,14 +174,10 @@ struct DisplayConfig: View {
}
}
.onChange(of: screenOnSeconds) { newScreenSecs in
if node != nil && node!.displayConfig != nil {
if newScreenSecs != node!.displayConfig!.screenOnSeconds { hasChanges = true }
}
if newScreenSecs != node?.displayConfig?.screenOnSeconds ?? -1 { hasChanges = true }
}
.onChange(of: screenCarouselInterval) { newCarouselSecs in
if node != nil && node!.displayConfig != nil {
if newCarouselSecs != node!.displayConfig!.screenCarouselInterval { hasChanges = true }
}
if newCarouselSecs != node?.displayConfig?.screenCarouselInterval ?? -1 { hasChanges = true }
}
.onChange(of: compassNorthTop) {
if $0 != node?.displayConfig?.compassNorthTop { hasChanges = true }
@ -190,27 +186,19 @@ struct DisplayConfig: View {
if $0 != node?.displayConfig?.wakeOnTapOrMotion { hasChanges = true }
}
.onChange(of: gpsFormat) { newGpsFormat in
if node != nil && node!.displayConfig != nil {
if newGpsFormat != node!.displayConfig!.gpsFormat { hasChanges = true }
}
if newGpsFormat != node?.displayConfig?.gpsFormat ?? -1 { hasChanges = true }
}
.onChange(of: flipScreen) {
if $0 != node?.displayConfig?.flipScreen { hasChanges = true }
}
.onChange(of: oledType) { newOledType in
if node != nil && node!.displayConfig != nil {
if newOledType != node!.displayConfig!.oledType { hasChanges = true }
}
if newOledType != node?.displayConfig?.oledType ?? -1 { hasChanges = true }
}
.onChange(of: displayMode) { newDisplayMode in
if node != nil && node!.displayConfig != nil {
if newDisplayMode != node!.displayConfig!.displayMode { hasChanges = true }
}
if newDisplayMode != node?.displayConfig?.displayMode ?? -1 { hasChanges = true }
}
.onChange(of: units) { newUnits in
if node != nil && node!.displayConfig != nil {
if newUnits != node!.displayConfig!.units { hasChanges = true }
}
if newUnits != node?.displayConfig?.units ?? -1 { hasChanges = true }
}
}
func setDisplayValues() {

View file

@ -241,42 +241,28 @@ struct LoRaConfig: View {
}
}
.onChange(of: region) { newRegion in
if node != nil && node!.loRaConfig != nil {
if newRegion != node!.loRaConfig!.regionCode { hasChanges = true }
}
if newRegion != node?.loRaConfig?.regionCode ?? -1 { hasChanges = true }
}
.onChange(of: usePreset) {
if $0 != node?.loRaConfig?.usePreset { hasChanges = true }
}
.onChange(of: modemPreset) { newModemPreset in
if node != nil && node!.loRaConfig != nil {
if newModemPreset != node!.loRaConfig!.modemPreset { hasChanges = true }
}
if newModemPreset != node?.loRaConfig?.modemPreset ?? -1 { hasChanges = true }
}
.onChange(of: hopLimit) { newHopLimit in
if node != nil && node!.loRaConfig != nil {
if newHopLimit != node!.loRaConfig!.hopLimit { hasChanges = true }
}
if newHopLimit != node?.loRaConfig?.hopLimit ?? -1 { hasChanges = true }
}
.onChange(of: channelNum) { newChannelNum in
if node != nil && node!.loRaConfig != nil {
if newChannelNum != node!.loRaConfig!.channelNum { hasChanges = true }
}
if newChannelNum != node?.loRaConfig?.channelNum ?? -1 { hasChanges = true }
}
.onChange(of: bandwidth) { newBandwidth in
if node != nil && node!.loRaConfig != nil {
if newBandwidth != node!.loRaConfig!.bandwidth { hasChanges = true }
}
if newBandwidth != node?.loRaConfig?.bandwidth ?? -1 { hasChanges = true }
}
.onChange(of: codingRate) { newCodingRate in
if node != nil && node!.loRaConfig != nil {
if newCodingRate != node!.loRaConfig!.codingRate { hasChanges = true }
}
if newCodingRate != node?.loRaConfig?.codingRate ?? -1 { hasChanges = true }
}
.onChange(of: spreadFactor) { newSpreadFactor in
if node != nil && node!.loRaConfig != nil {
if newSpreadFactor != node!.loRaConfig!.spreadFactor { hasChanges = true }
}
if newSpreadFactor != node?.loRaConfig?.spreadFactor ?? -1 { hasChanges = true }
}
.onChange(of: rxBoostedGain) {
if $0 != node?.loRaConfig?.sx126xRxBoostedGain { hasChanges = true }
@ -285,9 +271,7 @@ struct LoRaConfig: View {
if newOverrideFrequency != node?.loRaConfig?.overrideFrequency { hasChanges = true }
}
.onChange(of: txPower) { newTxPower in
if node != nil && node!.loRaConfig != nil {
if newTxPower != node!.loRaConfig!.txPower { hasChanges = true }
}
if newTxPower != node?.loRaConfig?.txPower ?? -1 { hasChanges = true }
}
.onChange(of: txEnabled) {
if $0 != node?.loRaConfig?.txEnabled { hasChanges = true }

View file

@ -132,14 +132,11 @@ struct NetworkConfig: View {
if $0 != node?.networkConfig?.wifiEnabled { hasChanges = true }
}
.onChange(of: wifiSsid) { newSSID in
if node != nil && node!.networkConfig != nil {
if newSSID != node!.networkConfig!.wifiSsid { hasChanges = true }
}
if newSSID != node?.networkConfig?.wifiSsid { hasChanges = true }
}
.onChange(of: wifiPsk) { newPsk in
if node != nil && node!.networkConfig != nil {
if newPsk != node!.networkConfig!.wifiPsk { hasChanges = true }
}
if newPsk != node?.networkConfig?.wifiPsk { hasChanges = true }
}
.onChange(of: wifiMode) {
if $0 != node?.networkConfig?.wifiMode ?? -1 { hasChanges = true }

View file

@ -144,30 +144,22 @@ struct PowerConfig: View {
}
}
.onChange(of: shutdownAfterSecs) {
if let val = node?.powerConfig?.onBatteryShutdownAfterSecs {
hasChanges = $0 != val
}
if $0 != node?.powerConfig?.minWakeSecs ?? -1 { hasChanges = true }
}
.onChange(of: adcOverride) { _ in
hasChanges = true
}
.onChange(of: adcMultiplier) { newAdcMultiplier in
if newAdcMultiplier != node?.powerConfig?.adcMultiplierOverride ?? 0 { hasChanges = true }
if newAdcMultiplier != node?.powerConfig?.adcMultiplierOverride ?? -1 { hasChanges = true }
}
.onChange(of: waitBluetoothSecs) {
if let val = node?.powerConfig?.waitBluetoothSecs {
hasChanges = $0 != val
}
if $0 != node?.powerConfig?.waitBluetoothSecs ?? -1 { hasChanges = true }
}
.onChange(of: lsSecs) {
if let val = node?.powerConfig?.lsSecs {
hasChanges = $0 != val
}
if $0 != node?.powerConfig?.lsSecs ?? -1 { hasChanges = true }
}
.onChange(of: minWakeSecs) {
if let val = node?.powerConfig?.minWakeSecs {
hasChanges = $0 != val
}
if $0 != node?.powerConfig?.minWakeSecs ?? -1 { hasChanges = true }
}
SaveConfigButton(node: node, hasChanges: $hasChanges) {

View file

@ -155,29 +155,19 @@ struct SecurityConfig: View {
)
})
.onChange(of: isManaged) {
if let val = node?.securityConfig?.isManaged {
hasChanges = $0 != val
}
if $0 != node?.securityConfig?.isManaged { hasChanges = true }
}
.onChange(of: serialEnabled) {
if let val = node?.securityConfig?.serialEnabled {
hasChanges = $0 != val
}
if $0 != node?.securityConfig?.serialEnabled { hasChanges = true }
}
.onChange(of: debugLogApiEnabled) {
if let val = node?.securityConfig?.debugLogApiEnabled {
hasChanges = $0 != val
}
if $0 != node?.securityConfig?.debugLogApiEnabled { hasChanges = true }
}
.onChange(of: bluetoothLoggingEnabled) {
if let val = node?.securityConfig?.bluetoothLoggingEnabled {
hasChanges = $0 != val
}
if $0 != node?.securityConfig?.bluetoothLoggingEnabled { hasChanges = true }
}
.onChange(of: adminChannelEnabled) {
if let val = node?.securityConfig?.adminChannelEnabled {
hasChanges = $0 != val
}
if $0 != node?.securityConfig?.adminChannelEnabled { hasChanges = true }
}
SaveConfigButton(node: node, hasChanges: $hasChanges) {