Repository navigation
feat(Board)!: items are a title and a description, padded by the board - #68
Open
lablup-octodog wants to merge 1 commit into
Open
lablup-octodog wants to merge 1 commit into
lablup-octodog wants to merge 1 commit into
Conversation
Contributor
PR Analysis Report📚 Storybook PreviewGitHub Pages may take up to a minute to hydrate after the deploy. 🧩 Changed Components
21 other changed file(s) in
|
| Group | Gzip | Δ Gzip vs base |
|---|---|---|
assets |
15.0 kB | +0.1 kB |
components/Board |
11.8 kB | +0.2 kB |
Total gzip (JS + CSS): 168.8 kB (+0.3 kB vs origin/main)
Generated by the PR Preview workflow for 7358900 · Storybook · CI run
Author
Ready-gate agent review (Opus) — blocking issues onlyNO BLOCKING ISSUES — the diff against No fixes were made after this review. |
lablup-octodog
marked this pull request as ready for review
October 15, 2026 02:38
|
The fix direction changed: see the Proposal in #71. The board should own the title row ( |
ironAiken2
force-pushed
the
fix/gh-10365-board-drag-handle-is-not-verti
branch
from
October 15, 2026 05:05
661a337 to
f31515e
Compare
ironAiken2
force-pushed
the
fix/gh-10365-board-drag-handle-is-not-verti
branch
from
October 15, 2026 05:16
f31515e to
1410816
Compare
ironAiken2
force-pushed
the
fix/gh-10365-board-drag-handle-is-not-verti
branch
from
October 15, 2026 06:02
1410816 to
1e0d7a3
Compare
ironAiken2
force-pushed
the
fix/gh-10365-board-drag-handle-is-not-verti
branch
from
October 15, 2026 07:45
1e0d7a3 to
5ad1635
Compare
ironAiken2
force-pushed
the
fix/gh-10365-board-drag-handle-is-not-verti
branch
from
October 15, 2026 07:51
5ad1635 to
58ddcc6
Compare
ironAiken2
force-pushed
the
fix/gh-10365-board-drag-handle-is-not-verti
branch
from
October 15, 2026 08:15
58ddcc6 to
17ace76
Compare
ironAiken2
force-pushed
the
fix/gh-10365-board-drag-handle-is-not-verti
branch
from
October 15, 2026 08:33
17ace76 to
58ddcc6
Compare
ironAiken2
force-pushed
the
fix/gh-10365-board-drag-handle-is-not-verti
branch
from
October 15, 2026 09:25
58ddcc6 to
330044d
Compare
`BoardItem` takes `title` and `description`, each a string or a node. The board renders a header row from the title (a string as a level-5 heading, a node such as a `BoardItemTitle` as is) and the description under it; without a title there is no header row and the description takes the whole item. Both are padded by the board: `itemPadding` takes a number (px) or a CSS length for every side, or one per side (default `--spacing-5` top and bottom, `--spacing-8` left and right), through the `--board-item-padding-top` / `-right` / `-bottom` / `-left` properties. The drag handle is absolute at the item's top-left corner, in the left padding on the title row's first line (its top offset is the top padding), and stays there when a title wraps or grows. `renderItem` is gone, with `BoardItemActions`, `removeItem`, `removedItem`, `liveAnnouncementItemRemoved` and the `uic.Board.itemRemoved` key: an item is its title and description, and removing one is the consumer's, by passing `items` without it. `BoardItemTitle` is now a title node the board pads and places, no longer a self-padded sticky row. Replaces the earlier fix on this branch, which only moved the handle's offset and so held for a single consumer layout. Stories cover title + description, a `BoardItemTitle` node with a tooltip and actions, a wrapping and an expanding title, no title, and `itemPadding`; their items carry only `title` and `description`. The node-title story opts out of the Docs JSX snippet: Storybook's snippet walks a rendered element's props, and Astryx elements created in a render function hang it. Resolves #71 Refs lablup/backend.ai-webui#10365
ironAiken2
force-pushed
the
fix/gh-10365-board-drag-handle-is-not-verti
branch
from
October 15, 2026 09:51
330044d to
7358900
Compare
This branch has not been deployed
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.
Resolves #71
Refs lablup/backend.ai-webui#10365
Summary
BoardItemtakestitleanddescription, each a string or a node. A string title renders as a level-5 heading, a string description as text; a node renders as is, so aBoardItemTitlewith a help tooltip and end-of-row actions is the title node to pass. Without a title there is no header row: the description takes the whole item.itemPaddingtakes a number (px) or a CSS length ("1rem","var(--spacing-3)") for every side, or one per side ({ top, right, bottom, left }), default--spacing-5top and bottom and--spacing-8left and right. It is written on each item as the--board-item-padding-top/-right/-bottom/-leftcustom properties:stylealone could not reach the padded elements inside the item, which is why the prop exists, and the properties stay settable from a stylesheet.renderItemis removed, withBoardItemActions,removeItem,removedItem,liveAnnouncementItemRemovedand theuic.Board.itemRemovedcatalog key (all 20 locales). An item is its title and description; removing one is the consumer's, by passingitemswithout it (theTitleWithActionsstory does).BoardItemTitleis now a title node the board pads and places: no ownpadding-block, noposition: sticky, no--board-item-title-z. The integration docs, README row and CHANGELOG follow.title+descriptiondescriptiononlyThis replaces the branch's first version, which moved the handle's absolute offset from
--spacing-2to--spacing-5to matchBoardItemTitle's padding and so held only for one consumer layout; the design in #71 makes the board own the title row and the padding instead.Test plan
src/components/Board/Board.test.tsx→ "Board item title and description" (5 tests: string title as a heading in a header row followed by the body, the handle on the item outside the header, a node title as is, no header row without a title, the four padding custom properties fromitemPaddingas a number, a CSS length and per side, and the unset case). The rest of the suite now renders items throughtitle.Components/Board:DefaultandEditable(title + description),TitleWithActions(aBoardItemTitlenode with a tooltip and a Remove button),LongTitle(a wrapping string title and a node title that expands),NoTitle(the description takes the item),Padding(itemPadding={{ top: 12, right: 16, bottom: 12, left: 16 }}); every story's items carry onlytitleanddescription(data: null). Measured with Playwright at 1100px: inDefault,EditableandTitleWithActionsthe header is 68px tall, the handle's and the title's vertical centers coincide (35px from the item's top), title and body both start 33px from the item's edge; inNoTitlethe handle sits at the same spot and the body starts 33px in; inPaddingthe header is 52px tall and the handle and title centers coincide at 27px, with title and body 17px from the edge; inLongTitlethe handle's center meets the wrapped title's first-line center while the header grows, and opening the expandable title grows the header with the handle's top unchanged.TitleWithActionssetsparameters.docs.source.type = "code": Storybook's JSX snippet walks a rendered element's props, and Astryx elements created inside a render function hang it (bisected across nine throwaway stories; the same nodes passed throughargs, or rendered without the board, are fine).docs/storybook.mdnotes the rule.Follow-up in backend.ai-webui
BAIBoardpassestitle/description(anditemPadding) through; the dashboard panels split into a title node (BAIBoardItemTitlewith the refresh button and edit controls) and a body, and drop their own inline inset; Start page tiles passdescriptiononly. lablup/backend.ai-webui#10365 stays open until webui adopts a release with this change.Verification
pnpm run verify(typecheck, lint, format:check, check:boundary, theme:check, test, build, check:pack, check:integration):