import { IMAGE_ROOT } from "@/shared/constants/common"; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { CalendarType, HeaderType } from '@/entities/common/model/types'; import { useSetHeaderTitle, useSetHeaderType, useSetFooterMode, useSetOnBack } from '@/widgets/sub-layout/use-sub-layout'; import { ChangeEvent, useState } from "react"; import { useExtensionPayoutRequestMutation } from "@/entities/additional-service/api/payout/use-extension-payout-request-mutation"; import { ExtensionPayoutRequestParams, ExtensionPayoutRequestResponse } from "@/entities/additional-service/model/payout/types"; import NiceCalendar from "@/shared/ui/calendar/nice-calendar"; import { useStore } from "@/shared/model/store"; import moment from 'moment'; import { NumericFormat } from "react-number-format"; import { snackBar } from "@/shared/lib"; export const PayoutRequestPage = () => { const { navigate } = useNavigate(); const userMid = useStore.getState().UserStore.mid; const [calendarOpen, setCalendarOpen] = useState(false); const [mid, setMid] = useState(userMid); const [submallId, setSubmallId] = useState(''); const [disbursementAmount, setDisbursementAmount] = useState(0); const [settlementDate, setSettlementDate] = useState(''); const { mutateAsync: extensionPayoutRequest } = useExtensionPayoutRequestMutation(); useSetHeaderTitle('지급대행 신청'); useSetHeaderType(HeaderType.RightClose); useSetFooterMode(false); useSetOnBack(() => { navigate(PATHS.additionalService.payout.list); }); const callExtensionPayoutRequest = () => { let params: ExtensionPayoutRequestParams = { mid: mid, submallId: submallId, disbursementAmount: disbursementAmount, settlementDate: settlementDate, }; extensionPayoutRequest(params) .then((rs) => { if (rs.status) { snackBar("신청을 성공하였습니다.") } else { snackBar(`[실패] ${rs.error?.message}`) } }) .catch((error) => { snackBar(`[실패] ${error?.response?.data?.message} ` || '[실패] 신청을 실패하였습니다.') }) ; }; const isFormValid = () => { return ( submallId.trim() !== '' && disbursementAmount > 0 && settlementDate.trim() !== '' ); }; const setNewDate = (date: string) => { setSettlementDate(moment(date).format('YYYYMMDD')); setCalendarOpen(false); }; return ( <>
서브ID
) => setSubmallId(e.target.value)} />
지급액
{ const { floatValue } = values; setDisbursementAmount(floatValue ?? 0); }} />
지급일
); };