diff --git a/src/components/inquiry/RegistForm.tsx b/src/components/inquiry/RegistForm.tsx
index 7cf5b9d..460a990 100644
--- a/src/components/inquiry/RegistForm.tsx
+++ b/src/components/inquiry/RegistForm.tsx
@@ -2,7 +2,7 @@
import { useInquiry } from '@/hooks/useInquiry'
import { useSessionStore } from '@/store/session'
-import { InquiryRequest } from '@/types/Inquiry'
+import { InquiryCommCode, InquiryRequest } from '@/types/Inquiry'
import { useEffect, useState } from 'react'
import { useRouter } from 'next/navigation'
import { CONFIRM_MESSAGE, SUCCESS_MESSAGE, useAlertMsg, WARNING_MESSAGE } from '@/hooks/useAlertMsg'
@@ -152,15 +152,15 @@ export default function RegistForm() {
選択してください
{commonCodeList
- .filter((code) => code.headId === 'QNA_CLS_LRG_CD')
+ .filter((code) => code.headCd === InquiryCommCode.QNA_CLS_LRG_CD.headCd)
.map((code) => (
))}
- {commonCodeList.filter((code) => code.refChar1 === inquiryRequest.qnaClsLrgCd).length > 0 && inquiryRequest.qnaClsLrgCd && (
+ {commonCodeList.filter((code) => code.refChr1 === inquiryRequest.qnaClsLrgCd).length > 0 && inquiryRequest.qnaClsLrgCd && (
)}
- {commonCodeList.filter((code) => code.refChar1 === inquiryRequest.qnaClsMidCd).length > 0 && inquiryRequest.qnaClsMidCd && (
+ {commonCodeList.filter((code) => code.refChr1 === inquiryRequest.qnaClsMidCd).length > 0 && inquiryRequest.qnaClsMidCd && (
diff --git a/src/hooks/useInquiry.ts b/src/hooks/useInquiry.ts
index 25bb533..cd87401 100644
--- a/src/hooks/useInquiry.ts
+++ b/src/hooks/useInquiry.ts
@@ -1,11 +1,12 @@
-import { InquiryList, Inquiry, InquirySaveResponse, CommonCode } from '@/types/Inquiry'
+import { InquiryList, Inquiry, InquirySaveResponse, InquiryCommCode } from '@/types/Inquiry'
import { useAxios } from '@/hooks/useAxios'
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
import { useInquiryFilterStore } from '@/store/inquiryFilterStore'
import { useMemo } from 'react'
import { useRouter } from 'next/navigation'
import { useAlertMsg } from '@/hooks/useAlertMsg'
-
+import { useCommCode } from './useCommCode'
+import { CommCode } from '@/types/CommCode'
/**
* @description 문의사항 관련 기능을 제공하는 커스텀 훅
@@ -20,7 +21,7 @@ import { useAlertMsg } from '@/hooks/useAlertMsg'
* @returns {boolean} isSavingInquiry - 문의사항 저장 중 상태
* @returns {Function} saveInquiry - 문의사항 저장 함수
* @returns {Function} downloadFile - 파일 다운로드 함수
- * @returns {CommonCode[]} commonCodeList - 공통 코드 목록
+ * @returns {CommCode[]} commonCodeList - 공통 코드 목록
*/
export function useInquiry(
qnoNo?: number,
@@ -33,7 +34,7 @@ export function useInquiry(
isSavingInquiry: boolean
saveInquiry: (formData: FormData) => Promise
downloadFile: (encodeFileNo: number, srcFileNm: string) => Promise
- commonCodeList: CommonCode[]
+ commonCodeList: CommCode[]
} {
const queryClient = useQueryClient()
const { inquiryListRequest, offset, isMyInquiry } = useInquiryFilterStore()
@@ -216,7 +217,8 @@ export function useInquiry(
}
/**
- * @description 공통 코드 목록 조회
+ * @description 문의 공통 코드 목록 조회
+ * - 문의 유형 대분류, 중분류, 소분류 코드 조회 이후 데이터 리로드 하지 않음
*
* @returns {Object} 공통 코드 목록 데이터
* @returns {CommonCode[]} data - 공통 코드 목록
@@ -225,15 +227,13 @@ export function useInquiry(
const { data: commonCodeList, isLoading: isLoadingCommonCodeList } = useQuery({
queryKey: ['commonCodeList'],
queryFn: async () => {
- const isListQuery = false
- const shouldThrowError = false
-
- const resp = await tryFunction(
- () => axiosInstance(null).get('/api/comm-code', { params: { headId: 'QNA_CD' } }),
- isListQuery,
- shouldThrowError,
- )
- return resp?.data ?? []
+ const { getCommCode } = useCommCode()
+ const resp = await Promise.all([
+ getCommCode(InquiryCommCode.QNA_CLS_LRG_CD.headId),
+ getCommCode(InquiryCommCode.QNA_CLS_MID_CD.headId),
+ getCommCode(InquiryCommCode.QNA_CLS_SML_CD.headId),
+ ])
+ return resp.flat()
},
staleTime: Infinity,
gcTime: Infinity,
diff --git a/src/types/Inquiry.ts b/src/types/Inquiry.ts
index c54d9dc..888ef6e 100644
--- a/src/types/Inquiry.ts
+++ b/src/types/Inquiry.ts
@@ -180,13 +180,17 @@ export type InquirySaveResponse = {
mailYn: string
}
-/**
- * @description 공통 코드 타입
- */
-export type CommonCode = {
- headCd: string
- headId: string
- code: string
- name: string
- refChar1: string
+export const InquiryCommCode = {
+ QNA_CLS_LRG_CD: {
+ headCd: '204200',
+ headId: 'QNA_CLS_LRG_CD',
+ },
+ QNA_CLS_MID_CD: {
+ headCd: '204300',
+ headId: 'QNA_CLS_MID_CD',
+ },
+ QNA_CLS_SML_CD: {
+ headCd: '204400',
+ headId: 'QNA_CLS_SML_CD',
+ },
}