import { useQuery } from '@tanstack/react-query'; import { Link } from 'react-router-dom'; import type { AttentionItem } from '../../../../../packages/api-contracts/src/index.js'; import { AccountOwnerBadge } from '../../components/account-owner-badge.js'; import { formatExactTime, formatShortRelativeTime } from '../conversations/relative-time.js'; import { attentionApi } from './attention-api.js'; import './attention.css'; function relativeTime(timestamp: number, now: number) { return ( ); } function actionHint(kind: AttentionItem['kind']): string { switch (kind) { case 'account-login-required': return 'No linked conversation — check Settings.'; case 'account-unestablished': return 'No linked conversation — check Accounts.'; case 'runtime-failed': case 'invitation-cooldown': default: return 'No linked conversation — check Operations.'; } } function itemAction(item: AttentionItem) { if (!item.conversationId) return {actionHint(item.kind)}; return Open conversation; } export function AttentionPage() { const query = useQuery({ queryKey: ['attention'], queryFn: attentionApi.getAttention, refetchInterval: 30_000 }); if (query.isPending) return
Boundaries, human handoffs, delivery failures, account problems, and Reddit cooldowns in one actionable inbox.
{item.detail}
{item.owner ?