https://sonarly.com/issue/14482?type=bug
Clicking "Reply" on an email thread in the side panel throws an unhandled "Account provider not supported" error for users with IMAP/SMTP connected accounts, crashing the UI.
Fix: **Two bugs fixed in `SidePanelMessageThreadPage.tsx`:**
**1. IMAP Reply crash (commit 7c8d362772):** The IMAP Driver Integration PR added `IMAP_SMTP_CALDAV` to `ALLOWED_REPLY_PROVIDERS` and added `canReply` logic for IMAP accounts with SMTP params, but left `handleReplyClick` with a `throw new Error('Account provider not supported')` placeholder for the IMAP case. Unlike Google (Gmail URL) and Microsoft (Outlook URL), IMAP has no webmail URL to deep-link to for replies.
**Fix:** Removed `IMAP_SMTP_CALDAV` from `ALLOWED_REPLY_PROVIDERS` so the Reply button is hidden for IMAP users. The switch statement keeps `IMAP_SMTP_CALDAV` as a no-op `break` to satisfy TypeScript exhaustiveness checking via `assertUnreachable`. Removed the now-unused `connectedAccountConnectionParameters` destructuring and IMAP-specific `canReply` condition.
**2. `isDefined(canReply)` regression (commit 9d57bc39e5):** The ESLint-to-OxLint migration mechanically replaced `canReply` truthiness checks with `isDefined(canReply)`. Since `canReply` is a boolean (from `useMemo`), `isDefined(false)` returns `true`, which meant: the Reply button was always rendered (line 169), never disabled (line 176), and the guard in `handleReplyClick` (line 106) never triggered.
**Fix:** Reverted `isDefined(canReply)` back to `canReply` in the three affected locations: the render condition, the disabled prop, and the click handler guard.