Skip to content

feat(role-manager): adopt the UI Kit DataTable for all tables - #140

Merged
pasevin merged 2 commits into
mainfrom
feat/uikit-data-table
Sep 19, 2026
Merged

pasevin merged 2 commits into
mainfrom
feat/uikit-data-table

Conversation

@pasevin

@pasevin pasevin commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • replace the Authorized Accounts, Role Changes, Pending Role Changes, and Role Identifiers table implementations with the UI Kit DataTable
  • remove the app-specific pagination components and use the in-frame UI Kit pager, toolbar, selection, and empty-state APIs
  • preserve cursor pagination behavior while resetting the app scroll container and retaining accessible focus after page changes
  • pin @openzeppelin/ui-components exactly to 3.12.0

Tooling

  • keep packed local UI/adapter manifests sticky across incidental installs and make adapter-only local installs resolve correctly
  • document and test the local package workflow
  • retain the seven-day release-age gate, adding only package-scoped metadata exceptions for @testing-library/dom and @tanstack/virtual-core
  • remove the global UI Components override and add a version-scoped package extension for the undeclared @openzeppelin/ui-components runtime import in @openzeppelin/adapter-polkadot@5.0.0

Registry verification

  • app manifest: exact @openzeppelin/ui-components: 3.12.0
  • installed graph: one @openzeppelin/ui-components@3.12.0 instance shared by the app, adapters, ui-react, and ui-renderer
  • lockfile: registry integrity entry; no OpenZeppelin file: or .packed-packages specifiers
  • .packed-packages/: absent after switching back to npm packages
  • frozen reinstall: passed

Verification

  • pnpm build — passed (3 of 4 workspace projects)
  • Role Manager typecheck — passed
  • pnpm lint — passed (3 of 4 workspace projects, zero warnings)
  • Role Manager tests — 56 files, 1,226 tests passed
  • pnpmfile tooling tests — 11 tests passed
  • total automated tests — 1,237 passed

Live checks

Tested on http://localhost:5173 against the saved Sepolia contract:

  • Authorized Accounts at 1440x1000: five rows; toolbar and pager remain inside the frame; previous/next use chevrons; pager controls are 36px; selection column is 48px
  • Role Changes at 1440x1000: 20 rows on page 1; date/action/role toolbar and relative pager remain inside the frame
  • Role Changes at 1440x700: no blank band below the footer; next-page scroll resets 1289 -> 0; previous-page scroll resets 1060 -> 0; page status/focus handoff remains accessible
  • Role Identifiers at 1440x1000: five rows rendered through the UI Kit table
  • Dashboard at 1440x1000: Pending Role Changes renders the expected no-pending empty state

Screenshots

gh pr create does not support uploading binary attachments, so screenshots were captured locally under /tmp/rm-datatable-screenshots/final/:

  • authorized-accounts-1440x1000.png — framed toolbar, five-row table, and in-frame pager
  • role-changes-1440x700-bottom.png — short viewport with pager directly above the footer and no blank band
  • role-changes-after-next-1440x700.png — page 2 after scroll reset
  • role-identifiers-1440x1000.png — Role Identifiers table
  • dashboard-1440x1000.png — Pending Role Changes empty state

Behavioral notes

  • select-all applies to the currently rendered Authorized Accounts page, matching the UI Kit DataTable's page-local selection model
  • empty results are rendered through each table's supplied UI Kit empty state; the Dashboard retains its existing no-pending-role-changes presentation

Made with Cursor

@pasevin
pasevin merged commit 291964f into main Sep 19, 2026
11 checks passed
@pasevin
pasevin deleted the feat/uikit-data-table branch September 19, 2026 22:33
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant