diff --git a/apps/admin-web/src/pages/AdminErrorReportsPage.tsx b/apps/admin-web/src/pages/AdminErrorReportsPage.tsx index 9c58a5ef7..0ac7f508c 100644 --- a/apps/admin-web/src/pages/AdminErrorReportsPage.tsx +++ b/apps/admin-web/src/pages/AdminErrorReportsPage.tsx @@ -24,15 +24,18 @@ export function AdminErrorReportsPage({ token, onUnauthorized }: Props) { const [busy, setBusy] = useState(false); const [filterStatus, setFilterStatus] = useState(''); const openReportRequestId = useRef(0); + const loadRequestId = useRef(0); const load = useCallback(async () => { + const requestId = ++loadRequestId.current; setStatus(''); try { const response = await listAdminErrorReports(token, { status: filterStatus || undefined, }); - setReports(response.reports); + if (requestId === loadRequestId.current) setReports(response.reports); } catch (error) { + if (requestId !== loadRequestId.current) return; if (isAdminApiError(error) && error.status === 401) return onUnauthorized(); setStatus(formatAdminApiError(error)); @@ -88,7 +91,7 @@ export function AdminErrorReportsPage({ token, onUnauthorized }: Props) { document.body.appendChild(anchor); anchor.click(); anchor.remove(); - URL.revokeObjectURL(url); + setTimeout(() => URL.revokeObjectURL(url), 1000); } catch (error) { if (isAdminApiError(error) && error.status === 401) onUnauthorized(); else setStatus(formatAdminApiError(error)); @@ -139,6 +142,14 @@ export function AdminErrorReportsPage({ token, onUnauthorized }: Props) {
{JSON.stringify(selected.events, null, 2)}
+ {JSON.stringify(selected.events.slice(0, 20), null, 2)}
{selected.userDescription ? (
用户描述:{selected.userDescription}
) : null}