import { useTranslation } from "next-i18next"; import Container from "components/services/widget/container"; import Block from "components/services/widget/block"; import useWidgetAPI from "utils/proxy/use-widget-api"; export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; const startOfMonth = new Date(); startOfMonth.setDate(1); startOfMonth.setHours(0, 0, 0, 0); const startOfMonthFormatted = startOfMonth.toISOString().split("T")[0]; const endOfMonth = new Date(startOfMonth); endOfMonth.setMonth(endOfMonth.getMonth() + 1); endOfMonth.setDate(0); endOfMonth.setHours(23, 59, 59, 999); const endOfMonthFormatted = endOfMonth.toISOString().split("T")[0]; const { data: summaryData, error: summaryError } = useWidgetAPI(widget, "summary", { start: startOfMonthFormatted, end: endOfMonthFormatted, }); const { data: budgetData, error: budgetError } = useWidgetAPI(widget, "budgets", { start: startOfMonthFormatted, end: endOfMonthFormatted, }); if (summaryError || budgetError) { return ; } if (!summaryData || !budgetData) { return ( ); } const netWorth = Object.keys(summaryData) .filter((key) => key.includes("net-worth-in")) .map((key) => summaryData[key]); let budgetValue = null; if (budgetData.data?.length && budgetData.data[0].type === "available_budgets") { const budgetAmount = parseFloat(budgetData.data[0].attributes.amount); const budgetSpent = -parseFloat(budgetData.data[0].attributes.spent_in_budgets[0]?.sum ?? "0"); const budgetCurrency = budgetData.data[0].attributes.currency_symbol; budgetValue = `${budgetCurrency} ${t("common.number", { value: budgetSpent, minimumFractionDigits: 2, })} / ${budgetCurrency} ${t("common.number", { value: budgetAmount, minimumFractionDigits: 2, })}`; } return ( ); }