-
-
Notifications
You must be signed in to change notification settings - Fork 365
fix(Checkbox): not trigger OnStateChanged callback when set TValue to bool #4667
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Reviewer's Guide by SourceryThis PR fixes a bug in the Checkbox component where the OnStateChanged callback wasn't being triggered correctly when setting TValue to bool. The implementation reorganizes the state change logic in InternalStateChanged method to ensure proper callback execution order and adds a unit test to verify the fix. Sequence diagram for Checkbox state change processsequenceDiagram
participant User
participant Checkbox
participant StateChanged
participant OnStateChanged
User->>Checkbox: Set TValue to bool
Checkbox->>Checkbox: InternalStateChanged(state)
alt IsBoolean
Checkbox->>Checkbox: Set CurrentValue
end
Checkbox->>Checkbox: Update State
alt StateChanged.HasDelegate
Checkbox->>StateChanged: InvokeAsync(State)
end
alt OnStateChanged != null
Checkbox->>OnStateChanged: Invoke(State, Value)
end
Updated class diagram for Checkbox componentclassDiagram
class Checkbox {
-CheckboxState State
-TValue CurrentValue
+Task<bool> InternalStateChanged(CheckboxState state)
}
class CheckboxState {
}
Checkbox --> CheckboxState
note for Checkbox "Reorganized state change logic to ensure proper callback execution order"
Class diagram for Checkbox unit test additionsclassDiagram
class CheckboxListTest {
+Task Checkbox_OnTriggerClickAsync()
+Task Bool_TriggerStateChanged_Ok()
}
note for CheckboxListTest "Added unit test to verify OnStateChanged callback when TValue is bool"
File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @ArgoZhang - I've reviewed your changes and they look great!
Here's what I looked at during the review
- 🟢 General issues: all looks good
- 🟢 Security: all looks good
- 🟡 Testing: 1 issue found
- 🟢 Complexity: all looks good
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #4667 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 620 620
Lines 27427 27428 +1
Branches 3929 3929
=========================================
+ Hits 27427 27428 +1 ☔ View full report in Codecov by Sentry. |
not trigger OnStateChanged callback when set TValue to bool
Summary of the changes (Less than 80 chars)
简单描述你更改了什么, 不超过80个字符;如果有关联 Issue 请在下方填写相关编号
Description
fixes #4666
Regression?
[If yes, specify the version the behavior has regressed from]
[是否影响老版本]
Risk
[Justify the selection above]
Verification
Packaging changes reviewed?
☑️ Self Check before Merge
Summary by Sourcery
Fix the Checkbox component to prevent the OnStateChanged callback from being triggered when TValue is set to a boolean, and add a corresponding unit test to ensure correct behavior.
Bug Fixes:
Tests: