Skip to content

fix(dashboard): stop the whitelabel delegates table clipping the Delegate button - #2169

Merged
brunod-e merged 2 commits into
devfrom
fix/whitelabel-delegate-column
Sep 30, 2026
Merged

brunod-e merged 2 commits into
devfrom
fix/whitelabel-delegate-column

Conversation

@brunod-e

Copy link
Copy Markdown
Collaborator

Problem

On the whitelabel stakeholders page (e.g. ens.gov.blockful.io/stakeholders) the Delegates table cut the Delegate button and produced a horizontal scroll.

Cause

The Delegate column was w-24 (96px) in a table-fixed layout, but the button with the gasless Free badge is ~121px wide. The content overflowed the table, the overflow-auto container clipped it at the rounded edge and the overflow created the horizontal scroll.

Fix

  • Delegate column widened to w-40 (160px), enough for both the Delegate + Free and the Delegated states.
  • Whitelabel-only numeric columns (Change, Activity, Avg Vote Timing, Delegators) give up one percentage point each so the address column keeps room for the name.
  • The row hover actions (Copy + Details) no longer reserve ~130px of invisible space next to the name on every row: they only join the row while it is hovered. This applies to the main dashboard as well.

Verification

Measured in headless Chrome (2x) at 1280, 1440, 1512 (MacBook Pro 14") and 1728 (MacBook Pro 16"): no horizontal scroll, Delegate button fully inside the table, no clipped address names at rest. At 1280 the longest ENS names get an ellipsis only while hovered. Typecheck, ESLint and Prettier pass on the dashboard.

🤖 Generated with Claude Code

…gate button

The Delegate column was 96px wide in a table-fixed layout, so the button
with the gasless "Free" badge overflowed the table, got clipped by the
container and produced a horizontal scroll. The column is now 160px, the
whitelabel-only numeric columns give up a few points to the address, and
the row actions (Copy + Details) only join the row while it is hovered
instead of reserving ~130px of invisible space next to the name.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
anticapture-storybook Ready Ready Preview Sep 30, 2026 6:14pm UTC
1 Skipped Deployment
Project Deployment Actions Updated
anticapture Ignored Ignored Sep 30, 2026 6:14pm UTC

Request Review

Copy link
Copy Markdown
Collaborator

🎨 UI Review

Automated review · Figma: not found · Spec: none found in ClickUp · Preview: dashboard Vercel deploy is Ignored (Storybook only)
ℹ️ Reviewed without a Figma reference — grounded in code/layout inspection and UX-expert evaluation. No live visual check was possible; visual claims are limited.


Delegates table — row hover actions (applies to the main dashboard too)

  • Copy + Details buttons go from opacity-0 to hidden … [tr:hover_&]:flex. They now enter the flow only on hover, so the address/name cell loses ~130px the moment the row is hovered. Names that fit at rest get truncated or shift on hover, and the row content visibly jumps. Keep the actions absolutely positioned over the cell's right edge (with a background matching the row hover color) so nothing reflows. (Delegates.tsx:309) [UX-heuristic]
  • display: none removes the buttons from the tab order, so keyboard users can no longer reach Copy or Details (before, they were focusable while transparent). Add focus-within:flex on the row or cell so the actions show when a child is focused. (Delegates.tsx:309) [UX-heuristic]
  • The transition-opacity fade is gone, so the actions now pop in instead of easing in like the rest of the hover states on the table. Use an opacity transition with absolute positioning instead of hidden/flex. [UX-heuristic]

Delegates table — column widths (whitelabel)

  • Delegate column w-24 → w-40 (160px) is enough for the Delegate + Free badge (~121px) and Delegated. Looks right. [Code-only]
  • Change 13% → 12%, Activity 10% → 9%, Avg Vote Timing 13% → 12%, Delegators 11% → 10%. The table is table-fixed, so check the headers at 1280px: "Avg Vote Timing" and "Activity" now have the least room and could wrap to two lines or clip the sort icon. If they do, shorten the label or drop the horizontal padding rather than shrinking the column further. Please attach before/after screenshots at 1280 and 1440 since the preview isn't available. [Code-only]

Mobile

  • No mobile change: the hover actions are already gated by !isMobile, and the table keeps its horizontal scroll. Nothing to flag. [Code-only]

Validated — no change needed

  • Non-whitelabel column widths (16/11/16/12%) are untouched, so the main dashboard table layout at rest is unchanged. [Code-only]

Generated by Claude Code

@railway-app

railway-app Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

🚅 Deployed to the anticapture-pr-2169 environment in anticapture-infra

Service Status Web Updated
shutter-indexer-offchain ✅ Success (View Logs) Sep 30, 2026 at 6:24 pm UTC
ens-indexer-offchain ✅ Success (View Logs) Sep 30, 2026 at 6:24 pm UTC
uniswap-indexer-offchain ✅ Success (View Logs) Sep 30, 2026 at 6:24 pm UTC
compound-indexer-offchain ✅ Success (View Logs) Sep 30, 2026 at 6:24 pm UTC
gitcoin-indexer-offchain ✅ Success (View Logs) Sep 30, 2026 at 6:24 pm UTC
ens-relayer ✅ Success (View Logs) Sep 30, 2026 at 6:17 pm UTC
mcp ✅ Success (View Logs) Web Sep 30, 2026 at 6:16 pm UTC
loki ✅ Success (View Logs) Sep 30, 2026 at 6:16 pm UTC
gateful ✅ Success (View Logs) Web Sep 30, 2026 at 6:16 pm UTC
authful ✅ Success (View Logs) Web Sep 30, 2026 at 6:16 pm UTC
docs ✅ Success (View Logs) Web Sep 30, 2026 at 6:16 pm UTC
fluid-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:16 pm UTC
aave-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
tornado-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
lil-nouns-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
obol-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
compound-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
obol-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
otelcol ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
shutter-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
shutter-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
nouns-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
aave-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
compound-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
nouns-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
gitcoin-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
scroll-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
ens-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
fluid-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
tornado-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
address-enrichment ✅ Success (View Logs) Web Sep 30, 2026 at 6:15 pm UTC
lil-nouns-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
uniswap-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
ens-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
uniswap-api ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
gitcoin-indexer ✅ Success (View Logs) Sep 30, 2026 at 6:15 pm UTC
erpc ✅ Success (View Logs) Sep 30, 2026 at 6:14 pm UTC
nodeful ✅ Success (View Logs) Sep 30, 2026 at 6:14 pm UTC
alertmanager ✅ Success (View Logs) Web Sep 30, 2026 at 6:14 pm UTC
prometheus 🕐 Queued (View Logs) Sep 30, 2026 at 6:13 pm UTC
tempo ✅ Success (View Logs) Sep 30, 2026 at 6:13 pm UTC
grafana 🕐 Queued (View Logs) Web Sep 30, 2026 at 6:13 pm UTC
scroll-api ✅ Success (View Logs) Sep 30, 2026 at 6:13 pm UTC
user-api ✅ Success (View Logs) Web Sep 30, 2026 at 6:12 pm UTC

@railway-app
railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-2169 September 30, 2026 18:10 Destroyed

@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: c41e3dc9d1

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

<div className="flex items-center opacity-0 transition-opacity [tr:hover_&]:opacity-100">
// Only in the flow while hovered, so the invisible actions do
// not reserve ~130px next to the name on every row.
<div className="hidden items-center [tr:hover_&]:flex">

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep row actions reachable by keyboard

For non-mobile layouts, hidden makes the Copy and Details controls display: none until a pointer hovers the row. The shared table renders rows as non-focusable <tr> elements with only an onClick handler, so keyboard users cannot trigger that hover state or tab to either control; in particular, copying a delegate address is no longer available to them. The previous opacity-0 implementation kept these buttons in the tab order.

Useful? React with 👍 / 👎.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

🔍 Vercel preview: https://anticapture-p2p8tujww-ful.vercel.app

@brunod-e
brunod-e merged commit 357b4be into dev Sep 30, 2026
60 checks passed
@brunod-e
brunod-e deleted the fix/whitelabel-delegate-column branch September 30, 2026 18:24

This branch was successfully deployed

1 active deployment
Preview – anticapture-storybook — c41e3dc9 Deployed Sep 30, 2026 by vercel[bot]
anticapture-infra / anticapture-pr-2169 — c41e3dc9 Deployed Sep 30, 2026 by railway-app[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants