'use client' // React Imports import { useState } from 'react' // MUI Imports import Card from '@mui/material/Card' import Chip from '@mui/material/Chip' import Grid from '@mui/material/Grid2' import Radio from '@mui/material/Radio' import Switch from '@mui/material/Switch' import Button from '@mui/material/Button' import RadioGroup from '@mui/material/RadioGroup' import Typography from '@mui/material/Typography' import CardHeader from '@mui/material/CardHeader' import CardContent from '@mui/material/CardContent' import FormControlLabel from '@mui/material/FormControlLabel' import type { ButtonProps } from '@mui/material/Button' // Type Imports import type { ThemeColor } from '@core/types' // Component Imports import BillingCard from '@components/dialogs/billing-card' import OpenDialogOnElementClick from '@components/dialogs/OpenDialogOnElementClick' import CustomTextField from '@core/components/mui/TextField' type DataType = { cardNumber?: string name?: string expiryDate?: string cardCvv?: string imgSrc?: string imgAlt?: string cardStatus?: string badgeColor?: ThemeColor } // Vars const data: DataType[] = [ { cardCvv: '587', name: 'Tom McBride', expiryDate: '12/24', imgAlt: 'Mastercard', badgeColor: 'primary', cardStatus: 'Primary', cardNumber: '5577 0000 5577 9865', imgSrc: '/images/logos/mastercard.png' }, { cardCvv: '681', name: 'Mildred Wagner', expiryDate: '02/24', imgAlt: 'Visa card', cardNumber: '4532 3616 2070 5678', imgSrc: '/images/logos/visa.png' } ] const PaymentMethod = () => { // States const [paymentMethod, setPaymentMethod] = useState<'credit' | 'cod'>('credit') const [creditCard, setCreditCard] = useState(0) // Hooks const [cardData, setCardData] = useState({ cardNumber: '', name: '', expiryDate: '', cardCvv: '' }) const handleReset = () => { setCardData({ cardNumber: '', name: '', expiryDate: '', cardCvv: '' }) } const buttonProps = (index: number): ButtonProps => ({ variant: 'tonal', children: 'Edit', size: 'small', onClick: () => setCreditCard(index) }) return ( setPaymentMethod(e.target.value as 'credit' | 'cod')} className='flex gap-4' > } label='Credit/Debit/ATM Card' /> } label='COD/Cheque' /> {paymentMethod === 'credit' ? ( <> setCardData({ ...cardData, cardNumber: e.target.value })} /> setCardData({ ...cardData, name: e.target.value })} /> setCardData({ ...cardData, expiryDate: e.target.value })} /> setCardData({ ...cardData, cardCvv: e.target.value })} /> } label='Save Card for future billing?' /> ) : ( Cash on delivery is a mode of payment where you make the payment after the goods/services are received. You can pay cash or make the payment via debit/credit card directly to the delivery person. )} My Cards {data.map((item: DataType, index: number) => (
{item.imgAlt}
{item.name} {item.cardStatus ? ( ) : null}
{item.cardNumber && item.cardNumber.slice(0, -4).replace(/[0-9]/g, '*') + item.cardNumber.slice(-4)}
Card expires at {item.expiryDate}
))}
) } export default PaymentMethod