diff --git a/src/entities/support/model/constants.ts b/src/entities/support/model/constants.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/entities/support/model/types.ts b/src/entities/support/model/types.ts
index b6df4af..7c68cc0 100644
--- a/src/entities/support/model/types.ts
+++ b/src/entities/support/model/types.ts
@@ -26,13 +26,13 @@ export interface FaqItemProps extends FaqItem {
}
export interface QnaListParams extends SupportParams {
+ statusCode?: string;
page?: DefaultRequestPagination;
};
export interface QnaItem {
- sortNo?: string;
+ cursorId?: number;
seq?: string;
statusCode?: string;
- statusName?: string;
requestDate?: string;
requestName?: string;
title?: string;
diff --git a/src/entities/support/ui/qna-item.tsx b/src/entities/support/ui/qna-item.tsx
index 1028473..b56e353 100644
--- a/src/entities/support/ui/qna-item.tsx
+++ b/src/entities/support/ui/qna-item.tsx
@@ -2,12 +2,12 @@ import moment from 'moment';
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { QnaItemProps } from '../model/types';
+import { useTranslation } from 'react-i18next';
export const SupportQnaItem = ({
- sortNo,
+ cursorId,
seq,
statusCode,
- statusName,
requestDate,
requestName,
title,
@@ -15,12 +15,11 @@ export const SupportQnaItem = ({
answer
}: QnaItemProps) => {
const { navigate } = useNavigate();
-
+ const { t } = useTranslation();
const onClickToDetail = () => {
navigate(PATHS.support.qna.detail, {
state: {
statusCode,
- statusName,
requestDate,
requestName,
title,
@@ -34,13 +33,13 @@ export const SupportQnaItem = ({
<>
onClickToDetail() }
+ onClick={ () => onClickToDetail() }
>
-
{ contents }
+
{ title }
등록일{ moment(requestDate).format('YYYY.MM.DD') }
- ㅣ상태 [{ statusName }]
+ ㅣ상태 [{t(`support.qna.statusCode.${statusCode}`)}]
diff --git a/src/locales/en.json b/src/locales/en.json
index 35c7e54..f2c9963 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -112,6 +112,7 @@
"inquiryButton": "Submit Inquiry",
"categories": {
"all": "All",
+ "choose": "Choose",
"01": "Billing & Tax Inquiry",
"02": "Transaction & Cancellation Inquiry",
"03": "Contract & Service Request Inquiry",
@@ -119,6 +120,13 @@
"05": "Others",
"06": "Service Usage Inquiry",
"09": "Credit Limit & Insurance Inquiry"
+ },
+ "statusCode": {
+ "all": "All",
+ "00": "Submit",
+ "01": "Save",
+ "02": "Submit Inquiry",
+ "03": "Completed"
}
}
}
diff --git a/src/locales/ko.json b/src/locales/ko.json
index 364d0fe..36ecca8 100644
--- a/src/locales/ko.json
+++ b/src/locales/ko.json
@@ -112,6 +112,7 @@
"inquiryButton": "1:1 문의하기",
"categories": {
"all": "모두",
+ "choose": "선택",
"01": "정산/세금계산서/부가세 문의",
"02": "거래내역/거래취소 문의",
"03": "계약/서비스 추가신청 문의",
@@ -119,6 +120,13 @@
"05": "기타",
"06": "서비스이용문의",
"09": "한도/보증보험 문의"
+ },
+ "statusCode": {
+ "all": "모두",
+ "00": "작성",
+ "01": "저장",
+ "02": "문의",
+ "03": "답변완료"
}
}
}
diff --git a/src/pages/support/qna/detail-page.tsx b/src/pages/support/qna/detail-page.tsx
index d670447..70ffc59 100644
--- a/src/pages/support/qna/detail-page.tsx
+++ b/src/pages/support/qna/detail-page.tsx
@@ -16,7 +16,6 @@ export const QnaDetailPage = () => {
const location = useLocation();
const [statusCode, setStatusCode] = useState
('');
- const [statusName, setStatusName] = useState('');
const [requestDate, setRequestDate] = useState('');
const [requestName, setRequestName] = useState('');
const [title, setTitle] = useState('');
@@ -27,12 +26,11 @@ export const QnaDetailPage = () => {
useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(false);
useSetOnBack(() => {
- navigate(PATHS.support.faq.list);
+ navigate(PATHS.support.qna.list);
});
useEffect(() => {
setStatusCode(location?.state.statusCode);
- setStatusName(location?.state.statusName);
setRequestDate(location?.state.requestDate);
setRequestName(location?.state.requestName);
setTitle(location?.state.title);
@@ -49,7 +47,7 @@ export const QnaDetailPage = () => {
제목
- 보증보험 가입 완료에 따른 한도증액 요청...
+ { requestName }
유형
@@ -67,10 +65,12 @@ export const QnaDetailPage = () => {
-
문의 내용
+
문의 내용
+
+ {/*
제목
@@ -81,6 +81,7 @@ export const QnaDetailPage = () => {
+ */}
diff --git a/src/pages/support/qna/list-page.tsx b/src/pages/support/qna/list-page.tsx
index 86ae417..89fdf4c 100644
--- a/src/pages/support/qna/list-page.tsx
+++ b/src/pages/support/qna/list-page.tsx
@@ -5,7 +5,7 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { HeaderType } from '@/entities/common/model/types';
import { useQnaListMutation } from '@/entities/support/api/use-qna-list-mutation';
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
-import { QnaItem } from '@/entities/support/model/types';
+import { QnaItem, QnaListParams, QnaListResponse } from '@/entities/support/model/types';
import { SupportQnaItem } from '@/entities/support/ui/qna-item';
import {
useSetHeaderTitle,
@@ -17,11 +17,13 @@ import { useStore } from '@/shared/model/store';
export const QnaListPage = () => {
const { navigate } = useNavigate();
+ const midOptions = useStore.getState().UserStore.selectOptionsMids;
const userMid = useStore.getState().UserStore.mid;
const { t } = useTranslation();
+ const [mid, setMid] = useState(userMid);
const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM);
- const [selectedCategory, setSelectedCategory] = useState('');
+ const [statusCode, setStatusCode] = useState(''); // 02, 03
const [resultList, setResultList] = useState>([]);
useSetHeaderTitle(t('support.qna.title'));
@@ -33,13 +35,13 @@ export const QnaListPage = () => {
const { mutateAsync: qnaList } = useQnaListMutation();
const callList = () => {
- let listParams = {
- mid: userMid,
+ let listParams: QnaListParams = {
+ mid: mid,
+ statusCode: statusCode,
...{page: pageParam}
};
- qnaList(listParams).then((rs) => {
- console.log(rs)
+ qnaList(listParams).then((rs: QnaListResponse) => {
setResultList(rs.content);
});
};
@@ -50,10 +52,9 @@ export const QnaListPage = () => {
rs.push(
{
useEffect(() => {
callList();
- }, [selectedCategory]);
+ }, [statusCode]);
return (
<>
@@ -82,25 +83,32 @@ export const QnaListPage = () => {
{t('support.qna.merchant')}
-
) => setSelectedCategory(e.target.value)}
+ value={ statusCode }
+ onChange={(e: ChangeEvent) => setStatusCode(e.target.value)}
>
-
-
-
-
-
-
-
-
+
+
+
diff --git a/src/pages/support/qna/register-page.tsx b/src/pages/support/qna/register-page.tsx
index 1febea9..aa9dab3 100644
--- a/src/pages/support/qna/register-page.tsx
+++ b/src/pages/support/qna/register-page.tsx
@@ -10,6 +10,8 @@ import {
useSetOnBack
} from '@/widgets/sub-layout/use-sub-layout';
import { useStore } from '@/shared/model/store';
+import { useTranslation } from 'react-i18next';
+import { PatternFormat } from 'react-number-format';
export enum QnaRegisterPropsName {
Mid = 'Mid',
@@ -23,6 +25,7 @@ export enum QnaRegisterPropsName {
export const QnaRegisterPage = () => {
const { navigate } = useNavigate();
+ const { t } = useTranslation();
const userMid = useStore.getState().UserStore.mid;
const [mid, setMid] = useState(userMid);
@@ -33,7 +36,7 @@ export const QnaRegisterPage = () => {
const [title, setTitle] = useState('');
const [contents, setContents] = useState('');
- useSetHeaderTitle('1:1 문의');
+ useSetHeaderTitle(t('support.qna.title'));
useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(false);
useSetOnBack(() => {
@@ -73,15 +76,14 @@ export const QnaRegisterPage = () => {
const callRegister = () => {
let params = {
mid: mid,
+ title: title,
counselType: counselType,
requestName: requestName,
requestTel: requestTel,
requestEmail: requestEmail,
- title: title,
contents: contents,
};
qnaSave(params).then((rs) => {
- console.log(rs);
alert('성공');
navigate(PATHS.support.qna.list);
});
@@ -105,6 +107,7 @@ export const QnaRegisterPage = () => {
) => setInputValue(e, QnaRegisterPropsName.Title) }
/>
@@ -116,9 +119,17 @@ export const QnaRegisterPage = () => {
) => setInputValue(e, QnaRegisterPropsName.CounselType) }
>
-
+
+
+
+
+
+
+
+
@@ -130,6 +141,7 @@ export const QnaRegisterPage = () => {
) => setInputValue(e, QnaRegisterPropsName.RequestName) }
/>
@@ -139,12 +151,13 @@ export const QnaRegisterPage = () => {
휴대폰번호 *
- ) => setInputValue(e, QnaRegisterPropsName.RequestTel) }
- />
+ >
@@ -165,6 +178,7 @@ export const QnaRegisterPage = () => {