NO-2077: sync SignatureView URL state and avoid duplicate change events#312
Open
vivekjyani wants to merge 2 commits intomainfrom
Open
NO-2077: sync SignatureView URL state and avoid duplicate change events#312vivekjyani wants to merge 2 commits intomainfrom
vivekjyani wants to merge 2 commits intomainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1) Spec Context
This change continues the ChangeHandler behavior work for Signature fields. The goal is to keep mirrored signature fields in sync while preventing redundant onChange emissions when state already matches.
2) What Changed (Files/Code)
Sources/JoyfillUI/View/Fields/SignatureView.swift.onChange(of: signatureURL)to skip firingeventHandler.onChange(...)when the value is already equal tosignatureDataModel.signatureURL..onChange(of: signatureDataModel.signatureURL ?? "")to sync external/model-driven updates back into local view state (signatureURLandsignatureImage) and refresh the rendered image.JoyfillSwiftUIExample/JoyfillUITests/ChangeUITests/OnChangeHandlerUITests.swifttestSignatureCoordinatess()(iPad) to validate that updating one signature field reflects on its mirrored counterpart.3) Key Implementation Decisions
onChangepath so UI state stays correct even when updates originate outside the local control path.SignatureViewto localize signature-specific synchronization behavior and minimize side effects.4) Screenshot / Video
No screenshot/video attached in this PR. This is a targeted behavior fix with UI test coverage.
5) Public API / Docs
6) Test Coverage
7) Reviewer Notes
SignatureView.