import React from "react"; import { Link, useNavigate } from "react-router-dom"; import { DownloadIcon, ThreedotIcon } from "@images/Images"; import { MapLeaderboard } from "@customTypes/Map"; import { ticks_to_time, time_ago } from "@utils/Time"; import { API } from "@api/Api"; import useMessage from "@hooks/UseMessage"; import "@css/Maps.css" interface LeaderboardsProps { mapID: string; } const Leaderboards: React.FC = ({ mapID }) => { const navigate = useNavigate(); const [data, setData] = React.useState(undefined); const [pageNumber, setPageNumber] = React.useState(1); const _fetch_map_leaderboards = async () => { const mapLeaderboards = await API.get_map_leaderboard(mapID, pageNumber.toString()); setData(mapLeaderboards); }; const { message, MessageDialogComponent } = useMessage(); React.useEffect(() => { _fetch_map_leaderboards(); console.log(data); }, [pageNumber, navigate]) if (!data) { return (

Map is not available for competitive boards.

); }; if (data.records.length === 0) { return (

No records found.

); }; return (
{MessageDialogComponent}
Place {data.map.is_coop ? (
Blue Orange
) : ( Runner )} Portals Time Date
{data.pagination.current_page}/{data.pagination.total_pages}

{data.records.map((r, index) => ( {r.placement} {r.kind === "multiplayer" ? (
  {r.host.user_name}   {r.partner.user_name}
) : r.kind === "singleplayer" && (
  {r.user.user_name}
)} {r.score_count} {ticks_to_time(r.score_time)} {time_ago(new Date(r.record_date.replace("T", " ").replace("Z", "")))} {r.kind === "multiplayer" ? ( ) : r.kind === "singleplayer" && ( )}
))}
); }; export default Leaderboards;