'use client'; import { deleteCookie } from 'cookies-next'; import { format } from 'date-fns'; import { ArrowUpRight, Clock, CreditCard, LogOut, User } from 'lucide-react'; import { useEffect, useState } from 'react'; import { useFetchBonusTransactionsQuery, useFetchMyBonusInfoQuery, } from '@/entities/bonus/api/bonus.api'; import { BonusTransactionRequest } from '@/entities/bonus/model/types/bonus-transactions.type'; import Loader from '@/shared/components/loader'; import { useTextController } from '@/shared/language/hooks/use-text-controller'; import { Button } from '@/shared/shadcn-ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/shared/shadcn-ui/card'; import { TableCell, TableHead, TableRow } from '@/shared/shadcn-ui/table'; import { TransactionsTable } from '@/widgets/transactions-table'; export function CustomerDashboard() { const { t } = useTextController(); const [request, setTransactionFetchRequest] = useState({ limit: 10, page: 1, }); const { data, isLoading } = useFetchMyBonusInfoQuery({}); const { data: transactionsResponse, refetch, isFetching: isTransactionLoading, } = useFetchBonusTransactionsQuery(request); useEffect(() => { refetch(); }, [request]); return (

{t('customer.pageTitle')}

{!data || isLoading ? ( ) : ( <> {t('customer.bonusCard.title')} {t('customer.bonusCard.description')}

{data.bonuses}

{t('customer.bonusCard.points')}

{t('customer.bonusCard.validUntil')}{' '} {new Date(data.end_date).toLocaleDateString('en-GB')}
)}
{/* Bonus Card */} {/* Customer Card */} {t('customer.infoCard.title')} {!data || isLoading ? ( ) : (

{t('customer.infoCard.regDateLabel')}

{data.fullname}

{t('customer.infoCard.regDateLabel')}

{new Date(data.reg_date).toLocaleDateString('en-GB')}

{t('customer.infoCard.cardNumberLabel')}

{data.cardno}

)}
( {t('corporate.transactions.tableHeaders.date')} {t('corporate.transactions.tableHeaders.station')} {t('corporate.transactions.tableHeaders.product')} {t('corporate.transactions.tableHeaders.quantity')} {t('corporate.transactions.tableHeaders.price')} {t('corporate.transactions.tableHeaders.total')} )} renderRow={(transaction) => ( {format( new Date(transaction.date_create), 'dd.MM.yyyy HH:mm', )} {transaction.station} {transaction.product_name} {transaction.amount} {transaction.price_real} {t('corporate.currency')} {transaction.sum_real} {t('corporate.currency')} )} onChange={setTransactionFetchRequest} />
); }