import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { HeaderType } from '@/entities/common/model/types'; import { useSetHeaderTitle, useSetHeaderType, useSetFooterMode, useSetOnBack } from '@/widgets/sub-layout/use-sub-layout'; import { ChangeEvent, useState } from 'react'; import { ExtensionFundAccountTransferRegistParams, ExtensionFundAccountTransferRegistResponse } from '@/entities/additional-service/model/fund-account/types'; import { useStore } from '@/shared/model/store'; import { snackBar } from '@/shared/lib'; import { useExtensionFundAccountTransferRegistMutation } from '@/entities/additional-service/api/fund-account/use-extension-fund-account-transfer-regist-mutation'; export const FundAccountTransferRequestPage = () => { const { navigate } = useNavigate(); const midOptions = useStore.getState().UserStore.selectOptionsMids; const userMid = useStore.getState().UserStore.mid; const [mid, setMid] = useState(userMid); const [bankCode, setBankCode] = useState(''); const [accountNo, setAccountNo] = useState(''); const [accountName, setAccountName] = useState(''); const [amount, setAmount] = useState(0); const [moid, setMoid] = useState(''); const [depositParameter, setDepositParameter] = useState(''); const { mutateAsync: extensionFundAccountRegist } = useExtensionFundAccountTransferRegistMutation(); useSetHeaderTitle('자금이체 이체등록'); useSetHeaderType(HeaderType.RightClose); useSetFooterMode(false); useSetOnBack(() => { navigate(PATHS.additionalService.fundAccount.transferList); }); const resetForm = () => { setBankCode(''); setAccountNo(''); setAccountName(''); setAmount(0); setMoid(''); setDepositParameter(''); }; const callExtensionFundAccountTransferRegist = () => { let params: ExtensionFundAccountTransferRegistParams = { mid: mid, bankCode: bankCode, accountNo: accountNo, accountName: accountName, amount: amount, moid: moid, depositParameter: depositParameter }; extensionFundAccountRegist(params).then((rs: ExtensionFundAccountTransferRegistResponse) => { if (rs.status) { snackBar("이체등록을 성공하였습니다.") resetForm(); } else { snackBar("이체등록이 실패하였습니다.") } }); }; const isFormValid = () => { return ( mid.trim() !== '' && bankCode.trim() !== '' && accountNo.trim() !== '' && accountName.trim() !== '' && amount > 0 && moid.trim() !== '' ) } return ( <>
가맹점*
은행*
계좌번호*
setAccountNo(e.target.value)} />
예금주명*
setAccountName(e.target.value)} />
이체금액*
setAmount(parseInt(e.target.value))} />
주문번호*
setMoid(e.target.value)} />
입금인자
setDepositParameter(e.target.value)} />
); };