'use client';
import * as React from 'react';
import Avatar from '@mui/material/Avatar';
import Button from '@mui/material/Button';
import Card from '@mui/material/Card';
import CardActions from '@mui/material/CardActions';
import CardContent from '@mui/material/CardContent';
import CardHeader from '@mui/material/CardHeader';
import Chip from '@mui/material/Chip';
import Divider from '@mui/material/Divider';
import IconButton from '@mui/material/IconButton';
import List from '@mui/material/List';
import ListItem from '@mui/material/ListItem';
import ListItemAvatar from '@mui/material/ListItemAvatar';
import ListItemText from '@mui/material/ListItemText';
import Typography from '@mui/material/Typography';
import { ArrowRight as ArrowRightIcon } from '@phosphor-icons/react/dist/ssr/ArrowRight';
import { ContactlessPayment as ContactlessPaymentIcon } from '@phosphor-icons/react/dist/ssr/ContactlessPayment';
import { DotsThree as DotsThreeIcon } from '@phosphor-icons/react/dist/ssr/DotsThree';
import { useTranslation } from 'react-i18next';
export interface Subscription {
id: string;
title: string;
icon: string;
costs: string;
billingCycle: string;
status: 'paid' | 'canceled' | 'expiring';
}
export interface SubscriptionsProps {
subscriptions: Subscription[];
}
export function Subscriptions({ subscriptions }: SubscriptionsProps): React.JSX.Element {
const { t } = useTranslation();
return (
}
title={t('Our subscriptions')}
/>
{subscriptions.map((subscription) => (
))}
} size="small">
{t('See all subscriptions')}
);
}
function SubscriptionItem({ subscription }: { subscription: Subscription }): React.JSX.Element {
const { t } = useTranslation();
const { label, color } = (
{
paid: { label: t('Paid'), color: 'success' },
canceled: { label: t('Canceled'), color: 'error' },
expiring: { label: t('Expiring'), color: 'warning' },
} as const
)[subscription.status];
return (
{subscription.title}
}
secondary={
{subscription.costs}{' '}
/{t(subscription.billingCycle)}
}
/>
);
}