This repository was archived by the owner on Oct 26, 2026. It is now read-only.
Repository navigation
Commit 4b3d6ed
fix(console): pin the Approvals Inbox Approve / Reject column and truncate long record titles (objectui#12816) (#12850)
Fixes #12816
Clause-②: no
Implemented by session
`https://claude.ai/code/session_011vfKFYJe5mXFiDw6F7CHuD` on head
`9f7f390`.
## What was wrong (measured, HotCRM under `objectstack dev --fresh`,
Chromium)
The record titles are `nowrap`, and the inbox table uses auto layout,
which sizes a column by its content's minimum width. A long title
("ACC-000011 - Contoso Pharmaceuticals and Life Sciences Group")
therefore held the Record column at 473 px although it is styled
`w-[30%]`. The table was 1074 px wide in a 718 px box, and the inline
Approve / Reject column sat past the card's right edge. Setting
`max-width: 0` on the Record cells alone, in the live page, brought the
table to 718 px.
## What changed (`ApprovalsInboxPage.tsx` only)
- Record cells are `max-w-0`. The title no longer sizes its column, so
it truncates; its full text stays in `title`, and the link is still the
whole title. The Record header keeps a `min-w-40` floor so rows stay
distinguishable at 1024 px (without it the column falls to 114 px and
every row reads "ACC-00…").
- The Approve / Reject column is pinned to the right edge in the header
and in every row: `sticky right-0 z-10`, with the shared
`PINNED_RIGHT_SEAM_SHADOW_CLASSES`, inside the overflow box's
`seam="pinned"` mode. This is how the console's lists pin their Actions
column: the shadow sits on the pinned cells' left edge while the table
scrolls under them. The box's own edge overlay is no longer drawn.
- The pinned cell's fill is the card's (`bg-card`), so a table that does
not scroll looks as before. An `::after` layer behind the cell's content
redraws the row's hover and keyboard-focus tints on that fill, and the
focused row's ring is redrawn on the pinned cell.
- Tailwind utilities and theme tokens only; no inline style.
`packages/components` is untouched, and the shared overflow box is used
as published. The other columns' widths, the filters, the inline approve
and reject flows, the dialogs, the waiting-on-others section and every
`data-testid` are unchanged.
## Before / after (Chromium, three pending account approvals with long
titles)
| | table scrollWidth / clientWidth | Record column | Approve / Reject
inside the card at rest | Approve / Reject cell |
|---|---|---|---|---|
| main `5d69b0e`, 1024 | 1074 / 718 | 473 px | no (all 3 rows) | static
|
| this branch, 1024, light | 762 / 718 | 160 px, titles truncated | yes
(all 3 rows) | sticky, seam shadow on |
| this branch, 1024, dark | 762 / 718 | 160 px, titles truncated | yes |
sticky, seam shadow on |
| main `5d69b0e`, 1280 | 1074 / 974 | 473 px | no | static |
| this branch, 1280, light | 974 / 974 (no overflow) | 282 px, titles
truncated | yes | sticky, seam shadow off |
The buttons are still revealed on row hover or focus, as before. The
table only shows where they sit.
## Screenshots (evidence branch `claude/issue-12816-evidence`, never
merged)
- [main, 1024, light
(before)](https://github.com/objectstack-ai/objectui/blob/e760383c390964e30e1428bcaa8048203da419d7/docs/design/findings/12816/approvals-inbox-1024-light-main.png?raw=true)
- [1024,
light](https://github.com/objectstack-ai/objectui/blob/e760383c390964e30e1428bcaa8048203da419d7/docs/design/findings/12816/approvals-inbox-1024-light.png?raw=true):
second row hovered, Approve / Reject pinned, seam shadow on
- [1024,
dark](https://github.com/objectstack-ai/objectui/blob/e760383c390964e30e1428bcaa8048203da419d7/docs/design/findings/12816/approvals-inbox-1024-dark.png?raw=true)
- [1280, light
(CONTROL)](https://github.com/objectstack-ai/objectui/blob/e760383c390964e30e1428bcaa8048203da419d7/docs/design/findings/12816/approvals-inbox-1280-light.png?raw=true):
nothing overflows, titles truncate
- [1024, light, keyboard-focused
row](https://github.com/objectstack-ai/objectui/blob/e760383c390964e30e1428bcaa8048203da419d7/docs/design/findings/12816/approvals-inbox-1024-light-focused-row.png?raw=true):
the ring stays continuous across the pinned cell
- [DOM
readings](https://github.com/objectstack-ai/objectui/blob/e760383c390964e30e1428bcaa8048203da419d7/docs/design/findings/12816/dom-readings.json?raw=true)
## Deviations
- `ApprovalsInboxPage.tableOverflow-12708.test.tsx`: the case that
checked the box's edge shadow now checks the box's `data-overflow-right`
mark, and that the edge overlay stays off. The ruled `seam="pinned"`
moves the shadow to the pinned cells.
- The Record header floor (`min-w-40`) is this PR's choice; the
reasoning is in the dev report on the card.
## Test evidence (head `9f7f390`)
- `pnpm exec vitest run` over all 18 `ApprovalsInboxPage.*.test.tsx`
files: exit 0, 92 tests passed.
- New pin `ApprovalsInboxPage.pinnedActions-12816.test.tsx` (stubbed 718
px box, 60-character record title): pinned header and row cells with the
seam classes; the Record cell `max-w-0` with the full title in `title`;
a short-title CONTROL; the focused row's ring on the pinned cell.
- Ablations, one per new pin, each restored to the HEAD blob: Record
`max-w-0` removed, 1 of 6 red. `sticky right-0` removed, 1 of 6 red.
`seam="pinned"` changed to edge, 2 of 6 red. Record floor removed, 1 of
6 red. Focus ring removed, 1 of 6 red. Seam classes removed, 1 of 6 red.
- `type-check` and `build` for `@object-ui/console` (after the
dependency build): exit 0. `eslint` on the touched files: 0 errors.
- `check:i18n-keys`, `check:i18n-drift`, `check:new-line-citations`,
`check-changeset-presence`, `check-changeset-no-major`: all exit 0.
## Acceptance notes
- On main, the 1280 px inbox also overflowed with these titles (1074 in
974). It no longer does.
- Out of scope and unchanged: the served request page
(objectui#12482–#12491) and the list columns' labels (objectui#12608).
---
_Generated by [Claude
Code](https://claude.ai/code/session_011vfKFYJe5mXFiDw6F7CHuD)_
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent e1351a8 commit 4b3d6ed
4 files changed
Lines changed: 279 additions & 12 deletions
File tree
- .changeset
- apps/console/src/pages/system
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | | - | |
13 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
155 | 156 | | |
156 | 157 | | |
157 | 158 | | |
158 | | - | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
159 | 163 | | |
160 | 164 | | |
161 | 165 | | |
162 | | - | |
| 166 | + | |
163 | 167 | | |
164 | 168 | | |
165 | | - | |
| 169 | + | |
| 170 | + | |
166 | 171 | | |
167 | 172 | | |
168 | | - | |
| 173 | + | |
169 | 174 | | |
170 | 175 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
| |||
866 | 867 | | |
867 | 868 | | |
868 | 869 | | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
869 | 882 | | |
870 | 883 | | |
871 | 884 | | |
| |||
2060 | 2073 | | |
2061 | 2074 | | |
2062 | 2075 | | |
2063 | | - | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
2064 | 2079 | | |
2065 | 2080 | | |
2066 | 2081 | | |
| |||
2081 | 2096 | | |
2082 | 2097 | | |
2083 | 2098 | | |
2084 | | - | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
2085 | 2104 | | |
2086 | 2105 | | |
2087 | 2106 | | |
2088 | | - | |
| 2107 | + | |
2089 | 2108 | | |
2090 | 2109 | | |
2091 | 2110 | | |
| |||
2109 | 2128 | | |
2110 | 2129 | | |
2111 | 2130 | | |
2112 | | - | |
| 2131 | + | |
| 2132 | + | |
| 2133 | + | |
| 2134 | + | |
| 2135 | + | |
2113 | 2136 | | |
2114 | 2137 | | |
2115 | 2138 | | |
| |||
2156 | 2179 | | |
2157 | 2180 | | |
2158 | 2181 | | |
2159 | | - | |
| 2182 | + | |
| 2183 | + | |
| 2184 | + | |
| 2185 | + | |
| 2186 | + | |
| 2187 | + | |
| 2188 | + | |
| 2189 | + | |
| 2190 | + | |
| 2191 | + | |
| 2192 | + | |
| 2193 | + | |
2160 | 2194 | | |
2161 | 2195 | | |
2162 | 2196 | | |
| |||
0 commit comments