ui phase 6
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
'use client';
|
||||
import { FunctionComponent, useState } from 'react';
|
||||
import { useTranslations } from 'next-intl';
|
||||
import { Box, Stack, Tab, Tabs } from '@mui/material';
|
||||
import { AppIcon, PageHeader } from '@/components';
|
||||
import WalletPaymentHistory from './WalletPaymentHistory';
|
||||
import WalletInstallments from './WalletInstallments';
|
||||
import WalletRefunds from './WalletRefunds';
|
||||
import WalletReceipts from './WalletReceipts';
|
||||
|
||||
type WalletTab = 'payments' | 'installments' | 'refunds' | 'receipts';
|
||||
|
||||
/**
|
||||
* /wallet — the customer money hub (ui-phase-6). Four sections replace the old installments-only shell so
|
||||
* a card-paying customer (the default path) finally sees something other than a permanently empty tab:
|
||||
* «پرداختها» (payment history), «اقساط» (the unchanged f11 D5 installment tracker), «استردادها» (refunds,
|
||||
* REQ-048), «رسیدها» (client-derived invoice links). All four read at the shell's shared `CONTENT_MAX_WIDTH`
|
||||
* — no local width override.
|
||||
*/
|
||||
const WalletScreen: FunctionComponent = () => {
|
||||
const t = useTranslations('bnpl');
|
||||
const [tab, setTab] = useState<WalletTab>('payments');
|
||||
|
||||
return (
|
||||
<Stack sx={{ gap: 2 }}>
|
||||
<PageHeader title={t('wallet_hub_title')} />
|
||||
|
||||
<Tabs
|
||||
value={tab}
|
||||
onChange={(_event, value: WalletTab) => setTab(value)}
|
||||
variant="scrollable"
|
||||
scrollButtons="auto"
|
||||
allowScrollButtonsMobile
|
||||
sx={{ borderBottom: '1px solid', borderColor: 'divider' }}
|
||||
>
|
||||
<Tab value="payments" label={t('tab_payments')} icon={<AppIcon icon="payment" size={18} />} iconPosition="start" />
|
||||
<Tab
|
||||
value="installments"
|
||||
label={t('tab_installments')}
|
||||
icon={<AppIcon icon="installments" size={18} />}
|
||||
iconPosition="start"
|
||||
/>
|
||||
<Tab value="refunds" label={t('tab_refunds')} icon={<AppIcon icon="refunds" size={18} />} iconPosition="start" />
|
||||
<Tab value="receipts" label={t('tab_receipts')} icon={<AppIcon icon="document" size={18} />} iconPosition="start" />
|
||||
</Tabs>
|
||||
|
||||
<Box role="tabpanel">
|
||||
{tab === 'payments' ? <WalletPaymentHistory /> : null}
|
||||
{tab === 'installments' ? <WalletInstallments /> : null}
|
||||
{tab === 'refunds' ? <WalletRefunds /> : null}
|
||||
{tab === 'receipts' ? <WalletReceipts /> : null}
|
||||
</Box>
|
||||
</Stack>
|
||||
);
|
||||
};
|
||||
|
||||
export default WalletScreen;
|
||||
Reference in New Issue
Block a user