"use client"; import type { ChangeEventHandler } from "react"; import { useCallback, useState } from "react"; import Link from "next/link"; import { Icon } from "@iconify/react"; import { GITHUB_URL } from "@xcpcio/types"; import { Textarea } from "@/components/ui/textarea"; import { useToast } from "@/components/ui/use-toast"; import { useLoadBoardData } from "@/lib/local-storage"; export default function Home() { const { toast } = useToast(); const [textValue, setTextValue] = useState(""); const [, setBoardData] = useLoadBoardData(); const handleTextareaChange: ChangeEventHandler = useCallback( (event) => { setTextValue(event.target.value); }, [setTextValue], ); const handleLoadData = useCallback(async () => { setBoardData(JSON.parse(textValue)); toast({ title: "Load Data", description: `Success. [length=${textValue.length}]`, }); }, [textValue, setBoardData, toast]); const handleLoadExampleData = useCallback(async () => { const resp = await fetch("/api/load-data"); const toastTitle = "Load Example Data"; if (resp.status === 200) { const text = await resp.text(); setBoardData(JSON.parse(text)); toast({ title: toastTitle, description: `Success. [data=2023-ccpc-final] [length=${text.length}]`, }); } else { toast({ title: toastTitle, description: `Failed. [data=2023-ccpc-final] [status=${resp.statusText}]`, }); } }, [setBoardData, toast]); return (

Resolver For ICPC/CCPC