Skip to content

ref(board): refine UI layouts and pagination - #172

Merged
loocor merged 14 commits into
mainfrom
ref/board-ui-ux-refinement
Aug 4, 2026
Merged

ref(board): refine UI layouts and pagination#172
loocor merged 14 commits into
mainfrom
ref/board-ui-ux-refinement

Conversation

@loocor

@loocor loocor commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • remove the legacy Server list diagnostics surface while preserving the formal InspectorDrawer workflow
  • refresh Server and Client catalog state after imports and edits
  • add responsive, internally scrollable catalog pagination with persistent controls and compact page indicators
  • align URL-driven and stored Grid/List view state across Server and Client catalogs
  • reuse catalog layout and pagination behavior across Profile and Market surfaces
  • refine detail log sizing, profile card metadata placement, and shared Settings layout tokens
  • remove remaining preview labels from production-facing Settings navigation

Motivation

The Board had accumulated overlapping debug UI, stale catalog state after mutations, and inconsistent pagination and layout behavior across operational pages. This refines those surfaces into one coherent UI contract without changing backend APIs or the formal Inspector product workflow.

User impact

  • Server and Client catalogs refresh after relevant mutations.
  • Search, filter, sort, view, and explicit page-size changes reset pagination consistently.
  • Responsive layout changes preserve valid requested pages and only clamp pages that become invalid.
  • Pagination remains visible on Server and Client catalogs, including single-page results.
  • Shared pagination controls retain compact layout and visible keyboard focus.
  • Settings and catalog pages use more consistent layout and spacing.

Scope

  • Board frontend only
  • no backend or API contract changes
  • no migration or configuration impact
  • no changes to InspectorDrawer behavior

Validation

  • bun test src — 325 tests passed
  • bun run e2e -- catalog-pagination.spec.ts server-list-error.spec.ts — 6 tests passed
  • bun run build — passed
  • bun run lint — 0 errors, 118 existing warnings
  • git diff --check origin/main...HEAD — passed
  • independent read-only review — no remaining Critical, Important, or Minor findings

Project tracking

This small Board UI refinement was explicitly handled without a GitHub Project item.

loocor added 13 commits August 3, 2026 11:14
- Route list load failures through the notification center.
- Remove legacy inline inspect diagnostics and cover the regression.
- Keep catalog state fresh after imports and transitions.
- Add responsive pagination with persistent controls and page-size selection.
- Remove the obsolete server list inspect action.
- Render compact current/total page indicator with balanced slash spacing.
- Remove focus ring glow from pagination icon and per-page controls.
- Export catalogPaginationClassName for pinned catalog footers.
- Add mirror-label grid so toolbar selects size to the selected option.
- Reuse the component for toolbar sort and secrets lifecycle filter.
- Accept optional viewMode prop that overrides stored dashboard default.
- Keep grid/list class selection aligned with toolbar URL state.
- Centralize catalog scroll shell and hover inset class names.
- Export getCatalogGridColumnCount and useCatalogGridColumnCount.
- Use shared catalog section/scroll/pagination layout tokens.
- Pass explicit viewMode into ListGridContainer and PageToolbarSelect.
- Add e2e coverage for clients grid/list toggle highlighting.
- Wire useResponsiveCatalogPagination with review-filter toolbar data.
- Match servers/clients scroll shell and pinned pagination footer.
- Type toolbar entities and view mode for PageToolbar integration.
- Derive per-page options as multiples of responsive column count.
- Snap stored/URL page sizes when breakpoints change.
- Pin market pagination footer with shared catalog class.
- Add fillHeight mode to AuditLogsPanel with internal table scroll.
- Pin metadata/stats above logs on server, client, and profile detail.
- Tighten main layout footer spacing for full-height catalog pages.
- Add topRightBadgePosition corner mode with absolute placement.
- Use corner badge on profile suit grid cards to protect title width.
- Centralize settings row/grid/control class tokens in settings-layout.
- Remove sidebar Beta and About WIP labels; update About copy in EN/zh/JP.
- Add bun test src script and tighten preset/test fixture typing.
- Keep valid requested pages across responsive layout changes.
- Preserve explicit Market page sizes when they remain valid.
- Restore visible keyboard focus across shared pagination controls.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 320bf54d55

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread board/src/pages/profile/profile-page.tsx
Comment thread board/src/pages/clients/client-detail-page.tsx

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refines the Board (frontend) catalog and detail-page UI contract by removing legacy diagnostics UI, standardizing layout tokens, and introducing responsive, scrollable pagination patterns shared across Servers/Clients/Profiles/Market—without backend/API changes.

Changes:

  • Introduce shared responsive catalog pagination + layout shells (sticky footer pagination with internal scroll) and apply across Servers/Clients/Profiles/Market.
  • Remove legacy Server list inline diagnostics/inspect UI while preserving the formal InspectorDrawer workflow.
  • Normalize Settings and detail-page layouts (shared class tokens, pinned overview sections, fill-height logs) and remove preview/beta labels in user-facing navigation copy.

Reviewed changes

Copilot reviewed 45 out of 45 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
board/src/pages/settings/settings-page.tsx Replaces duplicated Tailwind layout strings with shared settings layout tokens.
board/src/pages/settings/settings-layout.ts Adds shared Settings layout class tokens for consistent tab/row styling.
board/src/pages/settings/providers-settings.tsx Applies shared Settings card/content typography tokens.
board/src/pages/settings/i18n/index.ts Removes “preview build” wording from About copy across locales.
board/src/pages/settings/about-licenses-section.tsx Removes WIP badge and aligns About description copy with i18n update.
board/src/pages/servers/server-list-polling.ts Extracts server-list refetch-interval logic into a reusable helper.
board/src/pages/servers/server-list-polling.test.ts Adds unit coverage for transitional-status polling interval behavior.
board/src/pages/servers/server-list-page.tsx Removes legacy diagnostics UI, adds responsive pagination + internal scroll shell, and notification-based error surfacing.
board/src/pages/servers/server-detail-page.tsx Refactors overview layout to support pinned sections + fill-height logs.
board/src/pages/servers/i18n/index.ts Removes legacy debug/inspect translation strings no longer used by the UI.
board/src/pages/secrets/secrets-page.tsx Switches toolbar filter select to shared PageToolbarSelect.
board/src/pages/profile/profile-preset-page.tsx Tightens mutation typing for preset updates (removes any).
board/src/pages/profile/profile-page.tsx Adds responsive pagination + internal scroll shell and normalizes toolbar typing/filters.
board/src/pages/profile/profile-detail-page.tsx Aligns overview layout with pinned sections + fill-height logs panel behavior.
board/src/pages/profile/components/profile-suit-grid-card.tsx Adjusts badge positioning via new EntityCard badge placement option.
board/src/pages/market/types.ts Extends market pagination shape to include pageSizeOptions.
board/src/pages/market/market-page.tsx Moves pagination into a shared catalog footer style and uses dynamic page-size options.
board/src/pages/market/market-list-pagination-storage.ts Reworks market page-size storage/parsing for responsive grid column counts.
board/src/pages/market/market-list-pagination-storage.test.ts Adds coverage for responsive market page-size snapping/selection parsing.
board/src/pages/market/hooks/use-market-data.ts Adds responsive page-size handling tied to grid column count and URL params.
board/src/pages/clients/i18n/index.test.ts Tightens literal typing in client form schema test values.
board/src/pages/clients/clients-page.tsx Adds responsive pagination + internal scroll shell; aligns toolbar filtering to PageToolbarSelect.
board/src/pages/clients/client-detail-page.tsx Invalidates server catalog after imports and aligns overview/log layout with fill-height logs.
board/src/lib/server-query-cache.ts Adds a small helper to invalidate the server list query after imports.
board/src/lib/server-query-cache.test.ts Adds unit coverage for server catalog invalidation behavior.
board/src/lib/hooks/use-responsive-catalog-pagination.ts Introduces shared responsive pagination logic + URL page param handling.
board/src/lib/hooks/use-responsive-catalog-pagination.test.ts Adds unit tests for core pagination sizing/clamping/slicing utilities.
board/src/lib/catalog-layout.ts Adds shared layout tokens for catalog scroll shells and section spacing.
board/src/components/ui/page-toolbar.tsx Adds isDataReady gating and switches sort-field selection to PageToolbarSelect.
board/src/components/ui/page-toolbar-select.tsx Adds a shared select component with width mirroring for toolbar controls.
board/src/components/ui/page-toolbar-select.test.ts Adds unit coverage for select label mirroring helper.
board/src/components/servers/server-catalog-entry.tsx Removes legacy inspect/debug action button from server list entries.
board/src/components/servers/server-catalog-entry.test.tsx Ensures legacy debug props no longer render inspect action, switch remains.
board/src/components/pagination.tsx Adds sticky catalog footer class, compact page indicator, and focus-visible styling improvements.
board/src/components/pagination.test.tsx Adds coverage for compact current/total indicator rendering behavior.
board/src/components/list-grid-container.tsx Allows explicit view mode override (URL-driven) instead of only stored default.
board/src/components/list-grid-container.test.tsx Verifies explicit view mode overrides store default layout.
board/src/components/layout/sidebar.tsx Removes production-facing “Beta” label from the brand header.
board/src/components/layout/layout.tsx Refines outlet/viewport spacing and footer spacing semantics.
board/src/components/entity-card.tsx Adds cn usage and supports “corner” badge positioning without shrinking title row.
board/src/components/detail-tab-content-class.ts Adds shared overview stack/pinned section layout classes for detail pages.
board/src/components/audit-logs-panel.tsx Adds fillHeight mode to allow logs panel to grow and scroll internally.
board/package.json Adds test script (bun test src) for board package.
board/e2e/server-list-error.spec.ts Adds Playwright coverage ensuring server list errors use notification center only.
board/e2e/catalog-pagination.spec.ts Adds Playwright coverage for responsive pagination behaviors across catalogs.
Suppressed comments (1)

board/src/pages/servers/server-list-page.tsx:769

  • The catalog list uses loading={isLoading} but pagination uses isLoading || !isCatalogDataReady. While data is present but before onSortedDataChange fires, this can briefly render the empty state ("No servers found") even though results exist. Gate list rendering/empty state on isCatalogDataReady to keep the UI consistent.

Comment thread board/src/pages/clients/clients-page.tsx
Comment thread board/src/pages/servers/server-list-page.tsx Outdated
Comment thread board/src/pages/profile/profile-page.tsx
- Tie catalog readiness to the current toolbar data source.\n- Constrain long overview lists without changing short-list layout.\n- Remove legacy server diagnostics and cover review regressions.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 3, 2026

Copy link
Copy Markdown

Deploying mcpmate-site with  Cloudflare Pages  Cloudflare Pages

Latest commit: 3d6c6bf
Status: ✅  Deploy successful!
Preview URL: https://f67ae0e9.mcp-umate.pages.dev
Branch Preview URL: https://ref-board-ui-ux-refinement.mcp-umate.pages.dev

View logs

@loocor
loocor merged commit b304260 into main Aug 4, 2026
13 checks passed
@loocor
loocor deleted the ref/board-ui-ux-refinement branch August 4, 2026 00:16
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