Skip to content

Major Table Related UX Improvements#14102

Open
julianbaker wants to merge 6 commits intomainfrom
tables-fix
Open

Major Table Related UX Improvements#14102
julianbaker wants to merge 6 commits intomainfrom
tables-fix

Conversation

@julianbaker
Copy link
Copy Markdown
Member

  • Removed manual table column resizing and header resize handles from shared desktop tables.
  • Added shared responsive column-hide behavior with explicit hide order per table surface.
  • Updated track tables to support combined Track + Artist cells (library, playlist detail, history), including inline artwork in those combined rows.
  • Tightened/fixed column widths, drop timing, and header alignment so columns hide before clipping and headers align with cell content.
  • Updated fan clubs leaderboard and USDC purchases/withdrawals table behavior to match the new shared table rules.

Desktop routes/surfaces to test

  • Library: Tracks table
  • Collection page: Playlist detail table, Album detail table
  • History page: Tracks table
  • Dashboard page: Tracks tab, Albums tab
  • Fan Clubs / Coins: Leaderboard table view
  • Pay & Earn: Your Purchases, Withdrawal History, Sales, Audio Transactions

Introduce responsive column handling for shared table components. Adds responsiveColumns logic (responsiveColumns.ts) and a set of breakpoint policies (responsivePolicies.ts), plus unit tests for logic and coverage. Table component now measures wrapper width (ResizeObserver/fallback) and computes hidden columns to show/hide based on policy; header layout CSS updated to support centered/left/right alignment and caret positioning. Wire responsiveColumns into existing table consumers (audio transactions, artist coins, collections, pay-and-earn tables, collection page) and remove legacy column-resize UI. Also enhance TracksTable: new stacked artist option (showArtistInTrackNameColumn), MiniTrackArtwork, related styles and tests, and various column min/max width adjustments.
Multiple updates to table rendering, responsive behavior, and tracks table performance:

- Table/responsive logic
  - Add columnChromeWidth support and factor per-column chrome into responsive collapse budgeting.
  - Prefer column.minWidth when budgeting so columns shrink before being dropped.
  - Update responsive policies to a simpler hideOrder/alwaysVisible shape and tweak policies for several tables.
  - Update tests to cover chrome budgeting and new hide behavior.

- Table component
  - Track container width via ResizeObserver and compute hidden columns from responsive policy (include chrome width constant).
  - Use visibleColumns for react-table initialization.

- TracksTable
  - Significant render/perf changes: memoize MiniTrackArtwork, use refs for activeIndex, playing, data, access maps and handler callbacks to avoid frequent re-renders and stale closures.
  - Adjust many column min/width/max values and disable resizing for fixed columns.
  - Update artwork sizing, row/user-select styles, and track header layout to accommodate artwork.
  - Numerous callbacks updated to read from refs instead of capturing changing values.

- Library page & hook
  - Memoize and streamline filtered/formatted entries to avoid repeated formatting work; simplify data source generation with useMemo.
  - Fix active index calculation to use formatted lists consistently.

- Artist coins table
  - Remove unused CSS file and inline header/column layout changes: add artist column, adjust column widths, header paddings, and disable resizing for fixed columns.
  - Remove reliance on tableHeader class.

- Purchases & Withdrawals UI tweaks
  - Align purchase header with artwork spacing and update artwork dimensions and text truncation in TrackNameWithArtwork.
  - Add method header padding for withdrawals.

- Misc
  - Update various CSS tweaks (padding, artwork sizes, user-select) and small component refinements.

Overall these changes improve responsive column budgeting (including visual chrome), reduce unnecessary re-renders in the tracks table, and align table headers and column sizing across several pages.
Code cleanup and small UI/padding tweaks across table-related components.

- Reordered/imports and minor formatting fixes in AudioTransactionsTable and Table files.
- Added left padding to .tableHeader.leftAlign (.table/Table.module.css) to align header content.
- Cleaned up responsiveColumns and Table logic formatting (no behavior changes).
- Large formatting/refactor in TracksTable: reflowed MiniTrackArtwork and several cell renderers, standardized destructuring of trackAccessMapRef.current, and forwarded showArtistInTrackNameColumn to the Table props.
- Adjusted header paddings in ArtistCoinsTable (Coin and Artist columns), TrackNameWithArtwork.module.css, and WithdrawalsTable.module.css.
- Minor import/JSX formatting fixes in PurchasesTable.

These changes are primarily stylistic and layout-related, preserving existing behavior while improving readability and consistent spacing.
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 10, 2026

⚠️ No Changeset found

Latest commit: 85f16d6

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

cursoragent and others added 3 commits April 10, 2026 15:14
Co-authored-by: Ray Jacobson <raymondjacobson@users.noreply.github.com>
Apply code-style and formatting cleanup across tests and a component: reflow long expressions and expand object literals in responsiveColumns.test.ts, simplify the TextLink mock and reformat PurchaseableContentType in TracksTable.test.tsx, and remove redundant parentheses in TransactionDetailsContent.tsx. These are stylistic changes only and do not alter runtime behavior.
@github-actions
Copy link
Copy Markdown
Contributor

🌐 Web preview ready

Preview URL: https://audius-web-preview-pr-14102.audius.workers.dev

Unique preview for this PR (deployed from this branch).
Workflow run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants