add multi lang
This commit is contained in:
2026-07-11 20:03:15 +02:00
parent f0813894a8
commit ae3b435b51
116 changed files with 1543 additions and 484 deletions

View File

@@ -1,6 +1,7 @@
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';
@@ -13,6 +14,7 @@ export default function Dashboard() {
const { activeHousehold: household } = useHouseholdContext();
const { data: balance } = useBalance();
const { data: summary } = useSummary();
const { t } = useTranslation();
const members = household?.members || [];
const currency = household?.currency || 'PLN';
@@ -23,17 +25,17 @@ export default function Dashboard() {
<div className="card settlement-tile">
{!balance ? (
<p>Ładowanie</p>
<p>{t('common.loading')}</p>
) : balance.settled ? (
<>
<p>Rozliczenia</p>
<p>{t('dashboard.settlementsTitle')}</p>
<p className="amount settled">
Jesteście na czysto! <Icon name="celebration" />
{t('dashboard.allSettled')} <Icon name="celebration" />
</p>
</>
) : (
<>
<p>Rozliczenia</p>
<p>{t('dashboard.settlementsTitle')}</p>
<div className="settlement-transactions">
{balance.transactions.map((tx, i) => (
<p key={i} className="amount owed">
@@ -42,23 +44,23 @@ export default function Dashboard() {
))}
</div>
<button className="btn-primary btn-center" onClick={() => navigate('/settlements')}>
Rozlicz się
{t('dashboard.settleUpButton')}
</button>
</>
)}
</div>
<div className="card">
<h3>Wydatki wg kategorii (ten miesiąc)</h3>
{!summary ? <p>Ładowanie</p> : <CategoryPieChart data={summary.byCategory} currency={currency} />}
<h3>{t('dashboard.expensesByCategoryTitle')}</h3>
{!summary ? <p>{t('common.loading')}</p> : <CategoryPieChart data={summary.byCategory} currency={currency} />}
</div>
<div className="card">
<h3>Podsumowanie miesiąca</h3>
<h3>{t('dashboard.monthSummaryTitle')}</h3>
{summary && (
<div className="summary-grid">
<div>
<div className="label">Suma</div>
<div className="label">{t('dashboard.totalLabel')}</div>
<div className="value">{summary.total.toFixed(2)} {currency}</div>
</div>
{members.map((m) => (