diff --git a/src/app/favicon.ico b/src/app/favicon.ico new file mode 100644 index 0000000..8d5dd27 Binary files /dev/null and b/src/app/favicon.ico differ diff --git a/src/widgets/detail/paidStatus.tsx b/src/widgets/detail/paidStatus.tsx new file mode 100644 index 0000000..dfd6d03 --- /dev/null +++ b/src/widgets/detail/paidStatus.tsx @@ -0,0 +1,60 @@ +'use client'; + +import { useLocale } from 'next-intl'; // or your i18n library that exposes `locale` + +// ─── Types ──────────────────────────────────────────────────────────────────── +type PaymentStatusValue = 'paid' | 'unpaid'; + +interface PaymentStatusProps { + status: PaymentStatusValue; +} + +// ─── Translations ───────────────────────────────────────────────────────────── +const translations: Record> = { + uz: { + paid: "To'langan", + unpaid: "To'lanmagan", + }, + ru: { + paid: 'Оплачено', + unpaid: 'Не оплачено', + }, + en: { + paid: 'Paid', + unpaid: 'Unpaid', + }, +}; + +// ─── Component ──────────────────────────────────────────────────────────────── +export default function PaymentStatus({ status }: PaymentStatusProps) { + const locale = useLocale(); // reads "locale" key from your i18n library + const lang = translations[locale] ?? translations['en']; + const label = lang[status]; + + const isPaid = status === 'paid'; + + return ( + + {/* dot indicator */} + + {label} + + ); +}