-
-
Notifications
You must be signed in to change notification settings - Fork 364
feat(TreeView): add keep toggle/check state function #5353
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 pull request adds a new test to verify that toggle and check state are maintained across re-renders, adjusts UI layout in the TreeView sample, and refines the internal logic for handling expanded nodes by considering both explicit children and loaded items. Sequence diagram for maintaining toggle/check state in TreeViewsequenceDiagram
actor User
participant UI as "TreeView UI"
participant Component as "TreeView Component"
participant Cache as "State Cache"
User->>UI: Click toggle/check on a node
UI->>Component: Trigger OnTreeItemChecked
Component->>Cache: Check node state (if HasChildren or Items.Any())
Cache-->>Component: Return preserved state
Component-->>UI: Render TreeView with maintained check/toggle state
User->>UI: Click Refresh Button
UI->>Component: Trigger OnRefresh/OnParametersSetAsync
Component->>Cache: Retrieve existing state (no reset)
Component-->>UI: Re-render TreeView with preserved state
Updated class diagram for TreeView state managementclassDiagram
class TreeView {
+List<Item> Items
+bool ShowCheckbox
+bool AutoCheckChildren
+bool AutoCheckParent
+void OnTreeItemChecked()
+Task OnParametersSetAsync()
+void OnRefresh()
}
class ExpandableNodeCache {
+Task CheckExpandAsync(TNode node, Func<TNode, Task<IEnumerable<IExpandableItem>>> callback)
-List<Value> ExpandedNodeCache
}
class TreeNode {
+bool IsExpand
+bool HasChildren
+IEnumerable<Item> Items
}
TreeView --> "uses" ExpandableNodeCache
ExpandableNodeCache --> "checks" TreeNode
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 - here's some feedback:
Overall Comments:
- Consider adding a comment to explain the purpose of
ExpandableNodeCache.CheckExpandAsync. - The new test case could benefit from a clearer name that reflects the specific scenario being tested.
Here's what I looked at during the review
- 🟡 General issues: 1 issue found
- 🟢 Security: all looks good
- 🟢 Testing: all looks good
- 🟢 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 #5353 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 644 644
Lines 29206 29210 +4
Branches 4124 4124
=========================================
+ Hits 29206 29210 +4 ☔ View full report in Codecov by Sentry. |
add keep toggle/check state function
Summary of the changes (Less than 80 chars)
简单描述你更改了什么, 不超过80个字符;如果有关联 Issue 请在下方填写相关编号
Description
fixes #5352
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
Add the keep toggle/check state function to the TreeView component.
New Features:
Tests: