import { useEffect, useState } from "react"; import { useParams } from "react-router-dom"; import { api, type CallDetail } from "../../shared/api"; import { CallDetails } from "./CallDetails"; import { TitledCard } from "../../shared/ui/TitledCard"; import styles from "./CallDetailsPage.module.scss"; import { ScrollableContent } from "../../shared/virtual/ScrollableContent"; export function CallDetailsPage() { const { callId = "" } = useParams(); const [detail, setDetail] = useState(null); const [error, setError] = useState(null); useEffect(() => { let cancelled = false; setDetail(null); setError(null); void api.call(callId).then((value) => { if (!cancelled) setDetail(value); }).catch((cause) => { if (!cancelled) setError(cause instanceof Error ? cause.message : String(cause)); }); return () => { cancelled = true; }; }, [callId]); const content = error ?
{error}
: detail ? :
{t("正在加载调用详情…")}
; return

{detail?.call.display_name ?? t("调用详情")}

{content}
; }