From da3fa7e7eef818bc8822f9e68bfdea3200222f33 Mon Sep 17 00:00:00 2001 From: Paul Date: Fri, 25 Sep 2026 21:53:20 -0400 Subject: [PATCH] fix(ios): toggle only reports user taps Setting isOn from the server value (onAppear, a server push) also fired onChange(of: isOn), which sent a change event the user never made. A toggle whose value starts true reported true as soon as the screen appeared. Skip values matching the last one recorded, as the list item toggle already does. Co-Authored-By: Claude Opus 5.5 --- resources/ios/NativeUIToggleRenderer.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/ios/NativeUIToggleRenderer.swift b/resources/ios/NativeUIToggleRenderer.swift index 461c4b6..4da2a8f 100644 --- a/resources/ios/NativeUIToggleRenderer.swift +++ b/resources/ios/NativeUIToggleRenderer.swift @@ -45,6 +45,9 @@ struct NativeUIToggleRenderer: View { } } .onChange(of: isOn) { _, new in + // Setting isOn from the server value (onAppear, a server + // push) also lands here; only a user tap should report. + guard new != lastSentValue else { return } lastSentValue = new if onChangeCb != 0 { NativeElementBridge.sendToggleChangeEvent(onChangeCb, nodeId: node.id, value: new)