import {Linking,Text} from "react-native" import {useLocalSearchParams,useRouter} from "expo-router" import {useQuery} from "@tanstack/react-query" import {useState} from "react" import {useSession} from "../../src/state/session" import {Body,Button,ErrorMessage,Panel,Screen,Title,styles} from "../../src/components/ui" import {publicationAvailable,type Candidate} from "../../src/lib/candidates" export default function CandidateDetail(){ const {id}=useLocalSearchParams<{id:string}>(),{session,client}=useSession(),[linkError,setLinkError]=useState("") const query=useQuery({queryKey:["candidate",session?.user.id,id],enabled:!!session&&typeof id==="string",queryFn:({signal})=>client(`/api/v1/candidates/${encodeURIComponent(id)}`,{signal}),refetchInterval:15000}) const c=query.data,router=useRouter() async function open(url:string){setLinkError("");try{const parsed=new URL(url);if(parsed.protocol!=="https:"||parsed.username||parsed.password)throw new Error("证据链接无效。");await Linking.openURL(url)}catch{setLinkError("无法打开证据来源,请稍后重试。")}} return {c?.content.name??"候选详情"}