import { useTranslation } from 'react-i18next'; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useSetOnBack } from '@/widgets/sub-layout/use-sub-layout'; import { SingleDatePicker } from '@/shared/ui/filter/single-date-picker'; import { LinkPaymentFormData, LinkPaymentSendMethod } from '@/entities/additional-service/model/link-pay/types'; import { NumericFormat } from 'react-number-format'; import { useStore } from '@/shared/model/store'; import { useEffect } from 'react'; interface LinkPaymentStep1Props { formData: LinkPaymentFormData; setFormData: (formData: LinkPaymentFormData) => void; } export const LinkPaymentStep1 = ({ formData, setFormData }: LinkPaymentStep1Props) => { const { t } = useTranslation(); const { navigate } = useNavigate(); const midOptionsWithoutGids = useStore.getState().UserStore.selectOptionsMidsWithoutGids; useSetOnBack(() => { navigate(PATHS.additionalService.linkPayment.shippingHistory); }); // MID가 비어있고 옵션이 있으면 첫 번째 옵션으로 설정 useEffect(() => { if (!formData.mid && midOptionsWithoutGids.length > 0) { const firstMid = midOptionsWithoutGids[0]?.value; if (firstMid) { setFormData({ ...formData, mid: firstMid }); } } }, []); const handlePaymentMethodChange = (method: LinkPaymentSendMethod) => { setFormData({ ...formData, sendMethod: method }); }; const handleInputChange = (field: string, value: string) => { setFormData({ ...formData, [field]: value }); }; const handleDateChange = (date: string) => { setFormData({ ...formData, paymentLimitDate: date }); }; return ( <>
{t('filter.merchant')}
{t('additionalService.linkPayment.sendMethod')}
handlePaymentMethodChange(LinkPaymentSendMethod.SMS)} > SMS handlePaymentMethodChange(LinkPaymentSendMethod.EMAIL)} > {t('common.email')} handlePaymentMethodChange(LinkPaymentSendMethod.KAKAO)} > {t('common.kakao')}
{t('transaction.fields.productName')}
handleInputChange('goodsName', e.target.value)} />
{t('additionalService.linkPayment.productPrice')}
{ const { floatValue } = values; setFormData({ ...formData, amount: floatValue ?? 0 }); }} />
{t('additionalService.linkPayment.productOrderNumber')}
handleInputChange('moid', e.target.value)} />
{t('additionalService.linkPayment.paymentValidDate')}
{t('additionalService.linkPayment.until')}
); };