- 부가서비스 각 요청 페이지 : SnackBar 추가, 양식 수정

This commit is contained in:
HyeonJongKim
2025-10-29 14:33:24 +09:00
parent 5888c2844b
commit 448cdcc9d2
17 changed files with 462 additions and 334 deletions

View File

@@ -5,7 +5,8 @@ import { useLocation } from 'react-router';
import { IMAGE_ROOT } from "@/shared/constants/common";
import { PATHS } from '@/shared/constants/paths';
import { useExtensionLinkPayRequestMutation } from '@/entities/additional-service/api/link-payment/use-extension-link-pay-request-mutation';
import { ExtensionLinkPayRequestParams, LinkPaymentFormData } from '@/entities/additional-service/model/link-pay/types';
import { ExtensionLinkPayRequestParams, ExtensionLinkPayRequestResponse, LinkPaymentFormData } from '@/entities/additional-service/model/link-pay/types';
import { snackBar } from '@/shared/lib';
export const LinkPaymentApplyConfirmPage = () => {
const { navigate } = useNavigate();
@@ -40,17 +41,30 @@ export const LinkPaymentApplyConfirmPage = () => {
language: formData.language,
linkContentType: formData.linkContentType
};
console.log("Link Payment 요청 파라미터: ", requestParams);
linkPayRequest(requestParams)
.then((response) => {
console.log("Link Payment 성공 응답: ", response);
navigate(PATHS.additionalService.linkPayment.confirmSuccess);
.then((rs: ExtensionLinkPayRequestResponse) => {
if (rs.status) {
navigate(PATHS.additionalService.linkPayment.confirmSuccess);
} else {
// 응답은 성공했지만 status가 false인 경우
const validationErrors = rs.error?.details?.validationErrors;
if (validationErrors) {
// validation 에러 메시지들을 수집
const errorMessages = Object.values(validationErrors).join('\n');
snackBar(`[실패] ${errorMessages}`);
} else {
// 일반 에러 메시지
const errorMessage = rs.error?.message || '요청을 처리할 수 없습니다.';
snackBar(`[실패] ${errorMessage}`);
}
}
})
.catch((error) => {
console.error("Link Payment 실패: ", error);
// 에러 처리 로직 추가 가능
// 네트워크 에러 등 예외 상황
const errorMessage = error?.response?.data?.error?.message ||
error?.message ||
'요청 중 오류가 발생했습니다';
snackBar(`[실패] ${errorMessage}`);
});
};
@@ -66,18 +80,18 @@ export const LinkPaymentApplyConfirmPage = () => {
<div className="attention-icon" aria-hidden="true">
<img src={IMAGE_ROOT + '/ico_alert.svg'} alt="주의" />
</div>
<h1 className="preview-title"> <br/> </h1>
<h1 className="preview-title"> <br /> </h1>
<div className="preview-result">
<p className="preview-text">
TEST , ?<br/>
<br/>
.<br/>
URL로 .<br/><br/>
!$&#123;pay_url&#125;<br/><br/>
{formData.buyerName} , ?<br />
<br />
.<br />
URL로 .<br /><br />
!$&#123;pay_url&#125;<br /><br />
<b>
상호 : 나이스페이먼츠 <br/>
: {formData.goodsName}<br/>
: {formData.amount}
상호 : 나이스페이먼츠 <br />
: {formData.goodsName}<br />
: {formData.amount.toLocaleString()}
</b>
</p>
</div>