Skip to content

Implement multi level column grouping #62

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

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

ImmortalRabbit
Copy link
Owner

Add multi-level column grouping support using groupPath for hierarchical column organization.

This enhancement allows columns to be organized into nested groups. It is fully backward compatible, automatically using the new multi-level rendering only when groupPath is defined, otherwise falling back to the existing single-level grouping. Performance is maintained by this conditional rendering.


Open in Cursor Open in Web

- Add groupPath property to BaseGridColumn for hierarchical grouping
- Extend GroupDetailsCallback to support level parameter for multi-level groups
- Add utility functions for group path handling and multi-level group detection
- Implement walkMultiLevelGroups function for rendering hierarchical headers
- Update header rendering to support multi-level groups while maintaining backward compatibility
- Add multi-level damage handling for proper clipping
- Create storybook example demonstrating 3-level hierarchy (Sales Data > Quarters > Months)
- Maintain full backward compatibility with existing group property

The implementation automatically detects when multi-level groups are used and switches
to hierarchical rendering, while falling back to legacy single-level rendering for
backward compatibility.
Copy link

cursor bot commented Aug 17, 2025

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

- Use correct SpriteVariant type 'normal' instead of 'header'
- Fix drawSprite usage since it returns void, not a number
- Remove unused isGroupPathEqual import
- Maintain consistent icon positioning with original implementation
The isGroupPathEqual function was created but never used in the implementation.
Only areGroupPathsEqualUpToLevel is needed for multi-level group comparison
since we need to check if columns belong to the same hierarchy up to a
specific level, not just at that exact level.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants