import type { QueryClient } from "@tanstack/react-query"; import { inboxKeys } from "./queries"; import type { InboxItem, IssueStatus } from "../types"; export function onInboxNew( qc: QueryClient, wsId: string, _item: InboxItem, ) { // Use invalidateQueries instead of setQueryData — triggers a refetch that // reliably notifies all observers. The inbox list is small so this is cheap. qc.invalidateQueries({ queryKey: inboxKeys.list(wsId) }); } export function onInboxIssueStatusChanged( qc: QueryClient, wsId: string, issueId: string, status: IssueStatus, ) { qc.setQueryData(inboxKeys.list(wsId), (old) => old?.map((i) => i.issue_id === issueId ? { ...i, issue_status: status } : i, ), ); } export function onInboxInvalidate(qc: QueryClient, wsId: string) { qc.invalidateQueries({ queryKey: inboxKeys.list(wsId) }); }