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"; import { useTranslation } from 'react-i18next'; export const PayoutRequestPage = () => { const { t } = useTranslation(); 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(t('additionalService.payout.requestTitle')); 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(t('additionalService.payout.requestSuccess')) } else { snackBar(`[${t('common.failed')}] ${rs.error?.message}`) } }) .catch((error) => { snackBar(`[${t('common.failed')}] ${error?.response?.data?.message} ` || `[${t('common.failed')}] ${t('additionalService.payout.requestFailed')}`) }) ; }; const isFormValid = () => { return ( submallId.trim() !== '' && disbursementAmount > 0 && settlementDate.trim() !== '' ); }; const setNewDate = (date: string) => { setSettlementDate(moment(date).format('YYYYMMDD')); setCalendarOpen(false); }; return ( <>
{t('additionalService.payout.subId')}
) => setSubmallId(e.target.value)} />
{t('additionalService.payout.disbursementAmount')}
{ const { floatValue } = values; setDisbursementAmount(floatValue ?? 0); }} />
{t('additionalService.payout.disbursementDate')}
); };