"use client"; import { capitalizeFirstLetter } from "@/common/string-utils"; import { useToast } from "@/common/use-toast"; import { ServerPlatform, getServer } from "mcutils-library"; import { useRouter } from "next/navigation"; import { ReactElement } from "react"; import { Button } from "../ui/button"; import { Input } from "../ui/input"; import { Label } from "../ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../ui/select"; type LookupServerProps = { currentPlatform: string; }; export function LookupServer({ currentPlatform }: LookupServerProps): ReactElement { const router = useRouter(); const { toast } = useToast(); /** * Lookup a server based on the platform * * @param platform the server platform * @param query the query to lookup */ const lookupServer = async (platform: ServerPlatform, query: string) => { if (query == null || query.length === 0) { return; } try { const server = await getServer(platform, query); router.push(`/server/${platform}/${server.hostname}`); } catch (err) { toast({ title: "Error", variant: "destructive", description: (err as Error).message, duration: 5000, }); return; } }; return (
{ lookupServer(form.get("platform") as ServerPlatform, form.get("query") as string); }} >
); }