'use client'; import { useEffect, useState, Suspense } from 'react' import Search from './url' import Header from '../components/Header' interface TrackData { sender: string; receiver: string; express: boolean; signature: boolean; abandon: boolean; delivered: boolean country_code: string; handler: string; history: { info: string, location: string, time: string }[]; } export default function Track() { return ( <>
Loading...
}> ) } function TrackContent() { const [data, setData] = useState(null); const params = Search(); useEffect(() => { async function fetchData() { if (params == null) return; const res = await fetch(`https://haystack-khaki.vercel.app/api/pkg/${params}`); const json = await res.json(); setData(json); } fetchData(); }, [params]); if (!params) return null; if (!data) return
Loading...
; return (
{!data.abandon && !data.delivered && (
Package is in transit
)} {data.signature && (
Signature is required when the package arrive
)} {data.abandon && (
Package has been abandoned
)} {data.delivered && (
Package has delivered
)}

Origin: {data.sender}

Delivering to: {data.receiver}

Delivery progress

{[...data.history] .sort((a, b) => new Date(b.time).getTime() - new Date(a.time).getTime()) .map((history, idx) => (
{history.info}
{history.location}
{new Date(history.time).toLocaleString()}
))}
) }