File size: 1,041 Bytes
a8b3f00 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
'use client'
import type { FC } from 'react'
import React from 'react'
import s from './style.module.css'
import cn from '@/utils/classnames'
type Props = {
className?: string
title: string | JSX.Element | null
description: string
isChosen: boolean
onChosen: () => void
chosenConfig?: React.ReactNode
icon?: JSX.Element
extra?: React.ReactNode
}
const RadioCard: FC<Props> = ({
title,
description,
isChosen,
onChosen,
icon,
extra,
}) => {
return (
<div
className={cn(s.item, isChosen && s.active)}
onClick={onChosen}
>
<div className='flex px-3 py-2'>
{icon}
<div>
<div className='flex justify-between items-center'>
<div className='leading-5 text-sm font-medium text-gray-900'>{title}</div>
<div className={s.radio}></div>
</div>
<div className='leading-[18px] text-xs font-normal text-gray-500'>{description}</div>
</div>
</div>
{extra}
</div>
)
}
export default React.memo(RadioCard)
|