import { useNavigate } from 'react-router-dom'; import { useBalance, useSummary } from '../api/queries.js'; import { useHouseholdContext } from '../household/HouseholdContext.jsx'; import { useTranslation } from '../i18n/I18nContext.jsx'; import CategoryPieChart from '../components/CategoryPieChart.jsx'; import Icon from '../components/Icon.jsx'; function memberName(members, id) { return members.find((m) => m.id === id)?.name || '—'; } export default function Dashboard() { const navigate = useNavigate(); const { activeHousehold: household } = useHouseholdContext(); const { data: balance } = useBalance(); const { data: summary } = useSummary(); const { t } = useTranslation(); const members = household?.members || []; const currency = household?.currency || 'PLN'; return (

Dashboard

{!balance ? (

{t('common.loading')}

) : balance.settled ? ( <>

{t('dashboard.settlementsTitle')}

{t('dashboard.allSettled')}

) : ( <>

{t('dashboard.settlementsTitle')}

{balance.transactions.map((tx, i) => (

{memberName(members, tx.from)} → {memberName(members, tx.to)}: {tx.amount.toFixed(2)} {currency}

))}
)}

{t('dashboard.expensesByCategoryTitle')}

{!summary ?

{t('common.loading')}

: }

{t('dashboard.monthSummaryTitle')}

{summary && (
{t('dashboard.totalLabel')}
{summary.total.toFixed(2)} {currency}
{members.map((m) => (
{m.name}
{(summary.byPayer.find((p) => p.userId === m.id)?.total || 0).toFixed(2)} {currency}
))}
)}
); }