import { useState } from "react"; import Link from "next/link"; import { Loader2, MenuSquareIcon } from "lucide-react"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import VotersDialog from "@/components/Witnesses/VotersDialog"; import VotesHistoryDialog from "@/components/Witnesses/VotesHistoryDialog"; import useWitnesses from "@/api/common/useWitnesses"; import { config } from "@/Config"; import { cn, formatNumber, formatPercent } from "@/lib/utils"; import Head from "next/head"; import moment from "moment"; export default function Witnesses() { const [voterAccount, setVoterAccount] = useState(""); const [isVotersOpen, setIsVotersOpen] = useState(false); const [isVotesHistoryOpen, setIsVotesHistoryOpen] = useState(false); const { witnessesData, isWitnessDataLoading } = useWitnesses( config.witnessesPerPages.witnesses ); if (isWitnessDataLoading) { return ( ); } if (!witnessesData || !witnessesData.length) return; const changeVotersDialogue = (isOpen: boolean) => { setIsVotersOpen(isOpen); }; const changeVotesHistoryDialog = (isOpen: boolean) => { setIsVotesHistoryOpen(isOpen); }; return ( <> Witnesses - Hive Explorer
Name Votes Voters Block Size Missed Blocks APR Price Feed Feed Age Version {witnessesData.map((singleWitness, index) => ( {index + 1} {singleWitness.witness} {formatNumber(singleWitness.vests || 0, true).split(".")[0]} { setVoterAccount(singleWitness.witness); setIsVotesHistoryOpen(true); }} data-testid="witness-votes-button" /> {singleWitness.voters_num.toLocaleString()} { setVoterAccount(singleWitness.witness); setIsVotersOpen(true); }} data-testid="witness-voters-button" /> {singleWitness.block_size ? singleWitness.block_size.toLocaleString() : "--"} {singleWitness.block_size ? singleWitness.missed_blocks.toLocaleString() : "--"} {singleWitness.hbd_interest_rate ? formatPercent(singleWitness.hbd_interest_rate) : "--"} {singleWitness.price_feed ? singleWitness.price_feed.toLocaleString() : "--"} {singleWitness.feed_updated_at ? moment(singleWitness.feed_updated_at).fromNow() : "--"} {singleWitness.version} ))}
); }