Files
dmenu-admin/src/pages/coupon/components/CouponDiscountSettings.tsx
T
hamid zarghami 6447177b05 create coupon
2025-12-06 16:38:41 +03:30

83 lines
3.2 KiB
TypeScript

import { type FC } from 'react'
import type { FormikProps } from 'formik'
import Input from '@/components/Input'
import RadioGroup from '@/components/RadioGroup'
import type { CreateCouponType } from '../types/Types'
interface CouponDiscountSettingsProps {
formik: FormikProps<CreateCouponType>
couponType: 'PERCENTAGE' | 'FIXED'
onCouponTypeChange: (value: 'PERCENTAGE' | 'FIXED') => void
}
const CouponDiscountSettings: FC<CouponDiscountSettingsProps> = ({
formik,
couponType,
onCouponTypeChange,
}) => {
return (
<>
<div className='mb-6'>
<div className='text-sm mb-3'>مبلغ تخفیف</div>
<RadioGroup
items={[
{ label: 'مبلغ ثابت', value: 'FIXED' },
{ label: 'درصد', value: 'PERCENTAGE' },
]}
selected={couponType}
onChange={(value) => {
onCouponTypeChange(value as 'PERCENTAGE' | 'FIXED')
formik.setFieldValue('type', value as 'PERCENTAGE' | 'FIXED')
}}
/>
</div>
<div className='mb-6'>
<Input
label={couponType === 'PERCENTAGE' ? 'درصد تخفیف' : 'مبلغ تخفیف'}
placeholder={couponType === 'PERCENTAGE' ? '%' : 'تومان'}
name='value'
type='number'
value={formik.values.value}
onChange={(e) => formik.setFieldValue('value', Number(e.target.value))}
error_text={formik.touched.value && formik.errors.value ? formik.errors.value : ''}
/>
</div>
{couponType === 'PERCENTAGE' && (
<div className='mb-6'>
<Input
label='حداکثر تخفیف'
placeholder='تومان'
name='maxDiscount'
type='number'
seprator={true}
value={formik.values.maxDiscount || ''}
onChange={(e) => {
const value = e.target.value ? Number(e.target.value) : null
formik.setFieldValue('maxDiscount', value)
}}
error_text={formik.touched.maxDiscount && formik.errors.maxDiscount ? formik.errors.maxDiscount : ''}
/>
</div>
)}
<div className='mb-6'>
<Input
label='حداقل مبلغ سفارش'
placeholder='تومان'
name='minOrderAmount'
type='number'
seprator={true}
value={formik.values.minOrderAmount}
onChange={(e) => formik.setFieldValue('minOrderAmount', Number(e.target.value))}
error_text={formik.touched.minOrderAmount && formik.errors.minOrderAmount ? formik.errors.minOrderAmount : ''}
/>
</div>
</>
)
}
export default CouponDiscountSettings