feat(DataTableToolbar): add reusable toolbar component for Meshery UI migration#1664
feat(DataTableToolbar): add reusable toolbar component for Meshery UI migration#1664Uday9909 wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces the DataTableToolbar component, along with its corresponding TypeScript types and unit tests. The feedback highlights a few improvement opportunities: removing an ineffective zIndex property from the toolbar root styled component, adding responsive wrapping to the Section component to prevent horizontal overflow on mobile screens, and strengthening the unit test assertion for custom sx styles to verify they are actually applied.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Add DataTableToolbar — a pure presentational layout shell that provisions
named slots for toolbar actions:
- Left section: primaryActions, secondaryActions
- Right section: filter, search, columnVisibility, viewSwitch
All slots are optional ReactNode render props. Key decisions:
- Uses Sistent theme tokens exclusively (no hardcoded px/rem)
- Responsive via theme.breakpoints.down('sm') — no useMediaQuery
- Accepts sx prop for consumer overrides
- Replaces ToolWrapper's fixed height with flexible minHeight
Part of meshery/meshery#18965 follow-up.
Signed-off-by: Udaybir Singh <writetoudaybir@gmail.com>
a301426 to
7a17104
Compare
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Udaybir Singh <writetoudaybir@gmail.com>
|
@KhushamBansal ready for PR review! |
KhushamBansal
left a comment
There was a problem hiding this comment.
@Uday9909 Have you tested this locally? If yes, please attach screen recording to the PR description.
|
@KhushamBansal All make targets pass cleanly. npm link / make ui-build is timing out locally. Can we merge this Sistent PR first, then I'll open a follow-up Meshery UI PR that migrates ConnectionTableToolbar to use DataTableToolbar that PR will include the demo video/screenshots? |
|
@Uday9909 We need to test this thoroughly before merging. Please drop a message in the #support Slack channel to get help with running it locally. |
|
@KhushamBansal The updated layout spec matches the DataTableToolbar implementation — left section for custom operations, right section for bulk ops/search/filter/columns. The component provides slots for all these. The advanced features (multi-select filter, auto-hiding columns) will be handled by the child components passed into those slots. |
|
@Uday9909 Great!! Were you able to run the repo and test it? |
|
@KhushamBansal Yes, I'm able to run the repo. While testing DataTableToolbar locally, I discovered a related issue — the Sistent SearchBar component has a hardcoded width: '150px' when expanded, which causes placeholder text truncation across all pages that use it (this is the same root problem PR #18965 patched in tool.styles.tsx with minWidth: '12.5rem'). |
|
@KhushamBansal i have added the demo video in the pr!, i had just added the green border around it to check if it was actually my pack which was loading. |
|
@KhushamBansal For the filter button style — should I:
|
|
@Uday9909 Update the Already existing filter component. No, need to create a new component. |
|
@KhushamBansal Got it ,will update UniversalFilter in Meshery UI for the filter button style.
Filter button styling will be in the Meshery UI migration PR. |
|
@Uday9909 Please update filter button styling in https://github.com/layer5io/sistent/blob/master/src/custom/UniversalFilter.tsx |
|
hey @KhushamBansal i have completed the asked changes! ready for review. |
KhushamBansal
left a comment
There was a problem hiding this comment.
@Uday9909 Please sign off your commits.
…yout Signed-off-by: Udaybir Singh <writetoudaybir@gmail.com>
b858dbd to
b562e5b
Compare
|
@KhushamBansal ready for merge! |


Description
Adds a reusable
DataTableToolbarcomponent to replace Meshery UI'sToolWrapper. This is a pure presentational layout shell that provisions named slots for toolbar actions.Component API
primaryActionssecondaryActionsfilter|
search| Right section | SearchBar component ||
columnVisibility| Right section | Column visibility control ||
viewSwitch| Right section | Grid/table view toggle ||
sx| Root | Custom styles for migration |Key Decisions
theme.breakpoints.down('sm')— nouseMediaQuery, nowindow.innerWidthminHeight— replaces ToolWrapper's fixed 4rem heightsxprop — allows consumer overrides without per-page CSSFixes
Files Changed
Screen.Recording.2026-07-02.at.2.33.22.PM.mov
Verification