import { useTranslation } from "next-i18next"; import classNames from "classnames"; import Container from "components/services/widget/container"; import Block from "components/services/widget/block"; import useWidgetAPI from "utils/proxy/use-widget-api"; function MarketStatus({ service }) { const { t } = useTranslation(); const { widget } = service; const { data, error } = useWidgetAPI(widget, "status", { exchange: "US", }); if (error || data?.error) { return ; } if (!data) { return ( ); } const { isOpen } = data; if (isOpen) { return ( {t("stocks.open")} ); } return ( {t("stocks.closed")} ); } function StockItem({ service, ticker }) { const { t } = useTranslation(); const { widget } = service; const { data, error } = useWidgetAPI(widget, "quote", { symbol: ticker }); if (error || data?.error) { return ; } if (!data) { return ( ); } return (
{ticker}
0 ? "text-emerald-300" : "text-rose-300"}`}> {data.dp?.toFixed(2) ? `${data.dp?.toFixed(2)}%` : t("widget.api_error")} {data.c ? t("common.number", { value: data?.c, style: "currency", currency: "USD", }) : t("widget.api_error")}
); } export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; const { watchlist, showUSMarketStatus } = widget; if (!watchlist || !watchlist.length || watchlist.length > 28 || new Set(watchlist).size !== watchlist.length) { return ( ); } return (
{showUSMarketStatus === true && }
{watchlist.map((ticker) => ( ))}
); }