All updates
ProductionQAFrontend

Inbox & Resolution Center polish: cleaner Excel exports, sturdier comments, and a reusable share flow

PR #614pixbox-supportOct 16, 2025 · 11:20 UTC
QAOct 16, 2025
ProductionOct 16, 2025

Executive summary

A QA batch bundling four frontend improvements: Excel exports now mirror what users see on screen, the comments experience handles long text and deleted users more gracefully, mail sharing gets a unified share menu with email paste support, and the Resolution Center metadata tab is renamed and no longer shows empty labels. Released to the QA/testing environment.

Why this was needed

Several rough edges had accumulated across high-traffic screens. Excel exports dumped raw values (unformatted dates, [object Object], blank ID columns), making downloaded reports hard to read. Long comments and pasted rich text could overflow their bubbles or carry odd highlight colors, and deleted-user mentions relied on hover tooltips that assistive tech could not announce. The mail-sharing menu was duplicated across three grids with slightly different styling, and recipients had to be typed one at a time. The Resolution Center detail page also displayed empty badges when a document had no name.

Client / user impact

  • Excel downloads are now readable: dates are formatted consistently, lists become comma-separated text, objects resolve to their display name, booleans show as Yes/No, ID columns fall back to a related name, and empty cells show -.
  • Comments stay inside their bubbles regardless of length, long previews truncate cleanly, stray background colors are stripped, and deleted-user mentions are screen-reader friendly.
  • Sharing mail is more consistent across Inbox and Mail grids, and users can paste a block of email addresses to add multiple recipients at once.
  • The Resolution Center tab is clearly labeled 'Metadata' and no longer renders blank name badges (shows 'N/A' instead).

Technical scope

Grounded in the diff. Four feature areas merged into the QA branch:

  • Excel export formatting (#609): new src/utils/excelExport.helpers.ts adds formatCellValue plus helpers for date-key detection, JSON parsing of serialized strings, array normalization, object display-key extraction, *_id→related-name fallback, and Yes/No/- primitives. src/hooks/useExcelExport.ts now maps each cell through formatCellValue instead of raw item[key] ?? "".
  • Comments edge cases (#608): MessageBubble.tsx adds overflow-wrap:anywhere wrapping, an optional maxPreviewLength truncation path, and DOMPurify sanitization with FORBID_CSS to strip inline backgrounds; Composer.tsx + new composer.css add height caps and wrap guards; content-utils.tsx replaces mention Tooltips with aria-labels and data-attribute styling; ThreadView.tsx caps the pinned section height and drops the unused preview-length constant.
  • Share within system / via mail (#613): new reusable src/components/common/share-options/ShareDropdownMenu.tsx replaces the inline dropdowns in MailContents.tsx, InboxGrid.tsx, and MailGrid.tsx; ShareViaMailDialog.tsx adds clipboard recipient parsing and an auto-generated subject line; multiple-selector.tsx gains onPasteText and openOnFocus props; inbox-actions.ts normalizes row IDs to prime single-mail share dialogs.
  • Resolution metadata tab (#612): resolution-center/document/[id]/page.tsx renames the tab label 'Documents'→'Metadata' and hides the document-name badge when empty; MetadataTab.tsx guards document_name and shows 'N/A' instead of a blank badge.

Risk & mitigation

Moderate; mostly UI and presentation logic with no API contract changes. The Excel formatter changes every exported cell, so an edge-case value type could format differently than before (mitigated by explicit type handling and a - fallback). The comments refactor restructures MessageBubble rendering and sanitization, risking subtle markup or mention-styling regressions. The share dropdown was consolidated across three grids, so a wiring slip would affect all of them at once. Mitigation: this is a QA-stage promotion, so all four areas should be exercised in testing before any production release.

QA validation focus

  • Export grids (inbox/mail/batch) to Excel and verify dates, list columns, ID columns, boolean fields, object/nested values, and empty cells all render readably.
  • Post long comments, unbroken strings, and pasted rich text; confirm they wrap inside the bubble with no horizontal scroll and no leftover highlight colors; verify long previews truncate with an ellipsis.
  • Confirm deleted-user mentions render with the 'This user has been deleted' label and remain accessible.
  • Open the Share menu from Inbox grid, Mail grid, and Mail contents; verify 'Share within System' and 'Share via Email' both work, the selected count is correct, and single-row share actions carry the right mail ID.
  • In Share via Email, paste a block of mixed text containing several email addresses and confirm valid, de-duplicated recipients are added.
  • In Resolution Center, confirm the tab reads 'Metadata' and documents without a name show 'N/A' rather than an empty badge.