add toasts for invalid player and invalid server
All checks were successful
Deploy App / docker (ubuntu-latest) (push) Successful in 1m18s

This commit is contained in:
Lee
2024-04-17 18:26:53 +01:00
parent 347ee00c18
commit 6b96c3aedb
11 changed files with 537 additions and 42 deletions

View File

@ -1,5 +1,7 @@
"use client";
import { useToast } from "@/common/use-toast";
import { getPlayer } from "mcutils-library";
import { useRouter } from "next/navigation";
import { useState } from "react";
import { Button } from "../ui/button";
@ -8,30 +10,43 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip";
export function LookupPlayer(): JSX.Element {
const router = useRouter();
const [player, setPlayer] = useState("");
/**
* Set the player value
*
* @param event the input event
*/
const setPlayerValue = (event: React.ChangeEvent<HTMLInputElement>) => {
setPlayer(event.target.value);
};
const { toast } = useToast();
const [id, setId] = useState("");
/**
* Lookup a player
*/
const lookupPlayer = () => {
if (!player || player.length === 0) {
const lookupPlayer = async () => {
if (!id || id.length === 0) {
return;
}
router.push(`/player/${player}`);
try {
await getPlayer(id);
} catch (err) {
toast({
title: "Error",
variant: "destructive",
description: (err as Error).message,
duration: 5000,
});
return;
}
router.push(`/player/${id}`);
};
return (
<form className="flex gap-2 justify-center mt-2">
<Input className="w-fit" placeholder="Name / UUID" value={player} onChange={setPlayerValue} maxLength={36} />
<form className="flex gap-2 justify-center mt-2" action="" onSubmit={(event) => event.preventDefault()}>
<Input
className="w-fit"
placeholder="Name / UUID"
value={id}
onChange={(event) => {
setId(event.target.value);
}}
maxLength={36}
/>
<Tooltip>
<TooltipTrigger asChild>
<Button type="submit" onClick={() => lookupPlayer()}>