fix(inbox): reload mail content when switching items (+ filter refetch)
The appshell SDK useQuery only re-runs when the action changes, not the variables — so switching mail items (same crm.mail.history action, new threadId) never refetched and the reader kept the first thread's content (only the subject, a direct prop, updated). Key MailReader by threadId to remount it on switch (same pattern Messenger already uses for ThreadView). Also force a refetch of crm.inbox.list when the filter changes, which hit the same stale-variables bug. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -135,8 +135,10 @@ function Detail({ it, onError, onDone, onSnooze, onArchive }: {
|
||||
|
||||
{it.threadId ? (
|
||||
// A message/mail item → open the conversation to read + reply.
|
||||
// key by threadId: the SDK's useQuery only refetches when the ACTION changes, not the
|
||||
// variables — so switching items must remount MailReader to load the new thread's history.
|
||||
<div style={{ flex: 1, minHeight: 0 }}>
|
||||
<MailReader threadId={it.threadId} subject={it.title} onError={onError} />
|
||||
<MailReader key={it.threadId} threadId={it.threadId} subject={it.title} onError={onError} />
|
||||
</div>
|
||||
) : (
|
||||
// A non-threaded item (e.g. a system alert) → show its detail.
|
||||
|
||||
Reference in New Issue
Block a user