Skip to content

Accounting page — table column-width optimization

Why

Owner: "I really struggle with ALL of the tables… some columns aren't showing lengthy content but get a really wide column, squeezing other columns and forcing those contents to wrap where there's absolutely no need to."

Root cause: short, bounded columns (dates, GL codes, currency amounts, status tags) had no fixed width, so antd let them stretch — starving the genuinely long columns (names, descriptions, GL labels) and making THOSE wrap.

What shipped (origin/nightly ae2e61c4)

Uniform fix: fixed widths on short/bounded columns; ellipsis (+ hover tooltip) on long free-text columns so they truncate on one line instead of wrapping.

New components/accounting/tableLayout.tsx — shared width constants COL (date/code/amount/type/status/id/balance/…) + an ellipsisCell helper, so the sizing reads consistently instead of magic numbers scattered across a 160 KB component.

Tables fixed: - Chart of Accounts — Code / Type / Normal Balance / Status fixed widths. - Journal Entries — Date / Status / Amount fixed (Description stays flex). - Profit & Loss (Revenue + Expenses) — Name ellipsised, Amount fixed. - Balance Sheet — Name ellipsised (NoteRef badge kept inline), Balance fixed. - AR Aging — Invoice Date / Invoice / Amount / Days Out / Status / Certification fixed; Client stays the ellipsised flex column. - Bank Transactions — Funds Account bank name now ellipsises in a flex row (tooltip already shows the full name); the type Tag stays fixed. - Periods — Status trimmed 180→150; Closed by / Closed at bounded. - Related Party / Director CA — Payee/Director names + GL labels ellipsised. - Cash Flow / SOCIE — long Line label & dynamic equity-column headers ellipsised (ellipsis: { showTitle: true }).

Skipped: Trial Balance (already has working dynamic widths) and Fixed Asset Register (all columns already widthed — not a victim of the squeeze).

Verification

tsc + lint clean across all 8 touched files. Full suite 325/325. Pure presentation — no data/logic change. Auth-gated page → no local browser preview.

T-059 (Overview tiles — same owner UX request).