"use client"; import { useEffect, useMemo } from "react"; import { useSessionStorage } from "usehooks-ts"; import { BarsArrowUpIcon } from "@heroicons/react/20/solid"; import { ContractUI } from "~~/app/debug/_components/contract"; import { ContractName, GenericContract } from "~~/utils/scaffold-eth/contract"; import { useAllContracts } from "~~/utils/scaffold-eth/contractsData"; const selectedContractStorageKey = "scaffoldEth2.selectedContract"; export function DebugContracts() { const contractsData = useAllContracts(); const contractNames = useMemo( () => Object.keys(contractsData).sort((a, b) => { return a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }); }) as ContractName[], [contractsData], ); const [selectedContract, setSelectedContract] = useSessionStorage( selectedContractStorageKey, contractNames[0], { initializeWithValue: false }, ); useEffect(() => { if (!contractNames.includes(selectedContract)) { setSelectedContract(contractNames[0]); } }, [contractNames, selectedContract, setSelectedContract]); return (
{contractNames.length === 0 ? (

No contracts found!

) : ( <> {contractNames.length > 1 && (
{contractNames.map(contractName => ( ))}
)} {contractNames.map(contractName => ( ))} )}
); }