Browse: clamp descriptions and add a dataset detail card; drop Submitted column - #201
Merged
Merged
Conversation
The browse table cut descriptions at a fixed 75 characters, which truncated well before the column ran out of room. Drop the JS truncation and clamp the description cell to three lines with a CSS ellipsis, so it fills the available width and adapts to the layout. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
nginx served index.html with no Cache-Control, so browsers heuristically cached it and kept loading the previous build's hashed bundle until a hard refresh. Mark index.html no-cache (always revalidate) and the content-hashed /assets/ immutable so new deploys are picked up on the next navigation without serving stale assets. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
When a description is clamped, show a small expand button that opens the full text in a floating modal. The button only appears when the text is actually clipped (detected via ResizeObserver), and the modal overlay means the table layout never reflows. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This reverts commit f822cd2.
The browse grid used `1fr` tracks, whose implicit `min-width: auto` let a long description (or dataset ID) widen its column and push the Size and Submitted columns off the right edge. Use `minmax(0, 1fr)` so the flexible columns shrink to their share, let cells shrink below content width, and wrap long unbreakable tokens. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The standalone "Submitted" column didn't earn its width, so remove it and surface the submission date (along with the dataset ID and size) in the description modal, which now reads as a dataset "card": - The description cell's expand button is always shown, so the card is always reachable (not just when the text is clamped). - The modal header shows the dataset name with the ID (monospace) beneath it; the body shows submitted date, reaction count, and full description. - Size the modal to its content (capped at 80vh) so short descriptions don't leave empty space. FloatingModal gains an optional `className` (for the content sizing) and its `title` now accepts a ReactNode (for the name + ID header). Datasets are still ordered newest-first by submission date server-side; only the visible column is removed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Browse-page description UX. (The
index.htmlcache fix originally bundled here moved to #202.)Description column
EntityTablesearch still matches on it.minmax(0, 1fr)(not1fr) and cells can shrink / wrap long dataset IDs, so long content no longer pushes columns off the right edge.Dataset detail "card" modal
FloatingModalstyled as a dataset card: the name (header) with the dataset ID (monospace) beneath it, then submitted date, reaction count, and the full description.Dropped the standalone "Submitted" column
It didn't earn its width; the submission date now lives in the card. Datasets are still ordered newest-first by submission date server-side — only the visible column was removed.
Supporting change
FloatingModalgains an optionalclassName(for per-use sizing) and itstitlenow accepts aReactNode(for the name + ID header). Existing string callers are unaffected.Testing
tsc -b,eslint, andvite build: clean.🤖 Generated with Claude Code
Greptile Summary
Replaces the hard-coded 75-character description truncation with a CSS
line-clampapproach and adds a floating dataset-detail card modal accessible from every description cell; the standalone "Submitted" column is dropped in favor of showing the date inside the card.FloatingModalreceives two new optional props —classNamefor per-instance sizing andtitle: ReactNodefor richer headers — with no impact on existing callers.MainBrowseextracts a newDescriptionCellcomponent that CSS-clamps description text, keeps the full text in the DOM forEntityTablesearch, and conditionally renders aFloatingModalcard with name, dataset ID, submission date, and reaction count.1frtominmax(0, 1fr)and addingmin-width: 0; overflow-wrap: anywhereto cells, preventing long dataset IDs from overflowing the table.Confidence Score: 5/5
Safe to merge — changes are purely additive UI improvements with no data-path or API changes.
All three files touch only presentation logic: the FloatingModal API extension is backward-compatible, the DescriptionCell is a self-contained component with local state, and the CSS corrections (minmax grid columns, clamp, flex modal sizing) are straightforward. No server calls, routing, or shared state are modified.
No files require special attention.
Important Files Changed
Reviews (4): Last reviewed commit: "Apply Prettier formatting to MainBrowse" | Re-trigger Greptile