import useSWR from "swr"; import { useTranslation } from "react-i18next"; import getSymbolFromCurrency from "currency-symbol-map"; import Widget from "../widget"; import Block from "../block"; import { formatApiUrl } from "utils/api-helpers"; export default function CoinMarketCap({ service }) { const { t } = useTranslation(); const config = service.widget; const currencyCode = config.currency ?? "USD"; const { symbols } = config; const { data: statsData, error: statsError } = useSWR( formatApiUrl(config, `v1/cryptocurrency/quotes/latest?symbol=${symbols.join(",")}&convert=${currencyCode}`) ); if (!symbols || symbols.length === 0) { return ( ); } if (statsError) { return ; } if (!statsData) { return ( ); } const { data } = statsData; const currencySymbol = getSymbolFromCurrency(currencyCode); return ( {symbols.map((key) => ( {data[key].name} {currencySymbol} {data[key].quote[currencyCode].price.toFixed(2)} 0 ? "text-emerald-300" : "text-rose-300" }`} > {data[key].quote[currencyCode].percent_change_1h.toFixed(2)}% ))} ); }