Fix: Inbox "Open in new tab" now lands on the correct mail page
Executive summary
Opening a mail in a new tab from the inbox row menu now routes to the correct mail page (/mails/{id}) instead of a broken /inbox/{id} URL. This change has reached the QA environment for testing.
Why this was needed
The inbox row action menu opened mail in a new browser tab using a stale /inbox/{id} path. That route does not map to a mail view, so users opening a message in a new tab would land on an incorrect or non-functional page. The correct, supported route is /mails/{id}.
Client / user impact
Users who open an inbox message in a new tab now reliably reach that message's page. The fix also marks the mail as read before opening, preserving existing read-status behavior. No other inbox actions (Comments, Share via Email, Share within System, Archive, Delete) change behavior.
Technical scope
Single-file change in src/components/common/drawer-actions/inbox-actions.ts (the inbox row action definitions). Wraps feature PR #474.
- Corrected the "open in new tab" target from
window.open('/inbox/{id}')towindow.open('/mails/{id}'). - Tightened TypeScript types: replaced
anywithunknownon theInboxDataindex signature, therouter/error params, and gaveupdateReadStatusan explicit signature ({ mail_id, status }plusonSuccess/onErroroptions). - Marked unused
dataparams invisible(...)predicates as_datato satisfy lint rules. - Added a JSDoc comment documenting
getInboxActions.
Risk & mitigation
Low risk. The change is isolated to one inbox helper module with a +15/-9 diff; it is a route-string correction plus type/lint cleanup with no logic or data-flow changes. Main risk is that the new /mails/{id} route must exist and accept the same id; mitigated by QA verification before promotion to production.
QA validation focus
- From the inbox, use the row action menu "open in new tab" and confirm it opens
/mails/{id}and renders the correct message. - Confirm the message is marked as read when opened this way.
- Verify the other row actions (Comments, Share via Email, Share within System, Archive, Delete) still appear only when applicable and behave as before.
- Spot-check that no console errors appear on the inbox grid.