2024-04-17 23:09:01 +02:00
|
|
|
import {useQuery} from '@tanstack/react-query'
|
|
|
|
import {Player} from './serverCalls';
|
2024-04-13 23:07:08 +02:00
|
|
|
import {Guid} from "./Guid.ts";
|
|
|
|
import Column from "./components/Column.tsx";
|
2024-04-13 17:56:33 +02:00
|
|
|
|
2024-04-19 13:50:06 +02:00
|
|
|
function ScoreRow({name, value}: {
|
|
|
|
name: string;
|
|
|
|
value?: any;
|
|
|
|
}) {
|
|
|
|
return <tr>
|
|
|
|
<td>{name}</td>
|
|
|
|
<td>{value ?? '?'}</td>
|
|
|
|
</tr>;
|
|
|
|
}
|
|
|
|
|
2024-04-17 23:09:01 +02:00
|
|
|
export default function PlayerInfo({playerId}: { playerId: Guid }) {
|
|
|
|
const query = useQuery({
|
|
|
|
queryKey: ['player'],
|
|
|
|
refetchInterval: 1000,
|
|
|
|
queryFn: async () => {
|
|
|
|
const url = new URL('/player', import.meta.env.VITE_TANK_API);
|
|
|
|
url.searchParams.set('id', playerId);
|
2024-04-13 17:56:33 +02:00
|
|
|
|
2024-04-17 23:09:01 +02:00
|
|
|
const response = await fetch(url, {method: 'GET'});
|
|
|
|
if (!response.ok)
|
|
|
|
throw new Error(`response failed with code ${response.status} (${response.status})${await response.text()}`)
|
|
|
|
return await response.json() as Player;
|
|
|
|
}
|
|
|
|
});
|
2024-04-13 17:56:33 +02:00
|
|
|
|
2024-04-14 19:05:37 +02:00
|
|
|
return <Column className='PlayerInfo'>
|
2024-04-13 23:53:09 +02:00
|
|
|
<h3>
|
2024-04-17 23:09:01 +02:00
|
|
|
{query.isPending && 'loading...'}
|
|
|
|
{query.isSuccess && `Playing as ${query.data.name}`}
|
2024-04-13 23:53:09 +02:00
|
|
|
</h3>
|
2024-04-17 23:09:01 +02:00
|
|
|
{query.isError && <p>{query.error.message}</p>}
|
|
|
|
{query.isSuccess && <table>
|
2024-04-14 00:49:39 +02:00
|
|
|
<tbody>
|
2024-04-19 13:50:06 +02:00
|
|
|
<ScoreRow name='kills' value={query.data?.scores?.kills}/>
|
|
|
|
<ScoreRow name='deaths' value={query.data?.scores?.deaths}/>
|
|
|
|
<ScoreRow name='walls' value={query.data?.scores?.wallsDestroyed}/>
|
2024-04-14 00:49:39 +02:00
|
|
|
</tbody>
|
2024-04-17 23:09:01 +02:00
|
|
|
</table>}
|
2024-04-13 23:07:08 +02:00
|
|
|
</Column>;
|
2024-04-13 17:56:33 +02:00
|
|
|
}
|