Files
nice-app-web/src/entities/additional-service/ui/link-payment/apply/link-payment-step1.tsx
HyeonJongKim b5bdd3d855 부가서비스
- 링크결제 결제신청 API 연결
2025-09-22 17:00:02 +09:00

125 lines
4.1 KiB
TypeScript

import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { useSetOnBack } from '@/widgets/sub-layout/use-sub-layout';
import { LinkPaymentFormData, LinkPaymentSendMethod } from '@/entities/additional-service/model/types';
import { SingleDatePicker } from '@/shared/ui/filter/single-date-picker';
interface LinkPaymentStep1Props {
formData: LinkPaymentFormData;
setFormData: (formData: LinkPaymentFormData) => void;
}
export const LinkPaymentStep1 = ({ formData, setFormData }: LinkPaymentStep1Props) => {
const { navigate } = useNavigate();
useSetOnBack(() => {
navigate(PATHS.additionalService.intro);
});
const handlePaymentMethodChange = (method: LinkPaymentSendMethod) => {
setFormData({ ...formData, sendMethod: method });
};
const handleInputChange = (field: string, value: string) => {
setFormData({ ...formData, [field]: value });
};
const handleDateChange = (date: string) => {
setFormData({ ...formData, paymentExpiryDate: date });
};
return (
<>
<div className="issue-form">
<div className="issue-row gap-10">
<div className="issue-label"></div>
<div className="issue-field">
<select
className="wid-100"
value={formData.mid}
onChange={(e) => handleInputChange('mid', e.target.value)}
>
<option>nictest001m</option>
</select>
</div>
</div>
<div className="issue-row gap-10">
<div className="issue-label"> </div>
<div className="issue-field">
<div className="chip-row">
<span
className={`keyword-tag flex-1 ${formData.sendMethod === 'SMS' ? 'active' : ''}`}
onClick={() => handlePaymentMethodChange(LinkPaymentSendMethod.SMS)}
>
SMS
</span>
<span
className={`keyword-tag flex-1 ${formData.sendMethod === 'EMAIL' ? 'active' : ''}`}
onClick={() => handlePaymentMethodChange(LinkPaymentSendMethod.EMAIL)}
>
</span>
<span
className={`keyword-tag flex-1 ${formData.sendMethod === 'KAKAO' ? 'active' : ''}`}
onClick={() => handlePaymentMethodChange(LinkPaymentSendMethod.KAKAO)}
>
</span>
</div>
</div>
</div>
<div className="issue-row gap-10">
<div className="issue-label"></div>
<div className="issue-field">
<input
type="text"
placeholder=""
value={formData.goodsName}
onChange={(e) => handleInputChange('goodsName', e.target.value)}
/>
</div>
</div>
<div className="issue-row gap-10">
<div className="issue-label"></div>
<div className="issue-field">
<input
type="text"
placeholder=""
value={formData.amount}
onChange={(e) => handleInputChange('amount', e.target.value)}
/>
</div>
</div>
<div className="issue-row gap-10">
<div className="issue-label"> </div>
<div className="issue-field">
<input
type="text"
placeholder=""
value={formData.moid}
onChange={(e) => handleInputChange('moid', e.target.value)}
/>
</div>
</div>
<div className="issue-row gap-10">
<div className="issue-label"> </div>
<div className="issue-field">
<div className="link-apply-date">
<SingleDatePicker
date={formData.paymentExpiryDate}
setDate={handleDateChange}
placeholder="날짜 선택"
/>
<span></span>
</div>
</div>
</div>
</div>
</>
);
};