diff --git a/apps/sn/app/(map-layout)/map/searchModal/swageMhl.tsx b/apps/sn/app/(map-layout)/map/searchModal/swageMhl.tsx index 721bbb40b..1c578a3e6 100644 --- a/apps/sn/app/(map-layout)/map/searchModal/swageMhl.tsx +++ b/apps/sn/app/(map-layout)/map/searchModal/swageMhl.tsx @@ -69,7 +69,7 @@ const SwageMhl: React.FC = ({ {/* 용도 */} opt.val.startsWith(sidoPrefix))]} diff --git a/apps/sn/app/store/index.ts b/apps/sn/app/store/index.ts index e27d2922f..99ab25ce9 100644 --- a/apps/sn/app/store/index.ts +++ b/apps/sn/app/store/index.ts @@ -18,7 +18,43 @@ export const fetchCtpv = async (set: (state: any) => void) => { text: f.properties.mctpv_korn_nm, val: f.properties.mctpv_cd, })) - .sort((a, b) => a.text.localeCompare(b.text, 'ko')); + .sort((a, b) => { + // 커스텀 순서 정의 + const customOrder = [ + "서울특별시", + "부산광역시", + "대구광역시", + "인천광역시", + "광주광역시", + "대전광역시", + "울산광역시", + "세종특별자치시", + "경기도", + "강원특별자치도", // 경기도 다음에 배치 + "충청북도", + "충청남도", + "전북특별자치도", // 충청남도 다음에 배치 + "전라남도", + "경상북도", + "경상남도", + "제주특별자치도" + ]; + + const indexA = customOrder.indexOf(a.text); + const indexB = customOrder.indexOf(b.text); + + // 둘 다 커스텀 순서에 있으면 해당 순서로 + if (indexA !== -1 && indexB !== -1) { + return indexA - indexB; + } + + // 하나만 커스텀 순서에 있으면 그것을 앞으로 + if (indexA !== -1) return -1; + if (indexB !== -1) return 1; + + // 둘 다 커스텀 순서에 없으면 기본 알파벳 순서 + return a.text.localeCompare(b.text, 'ko'); + }); console.log('시도 데이터', list); set({ ctpv: list }); @@ -53,8 +89,8 @@ export const fetchBIZ_TY_CD = async (set: (state: any) => void) => { try { const res = await getCmsData(`/api/v1/code/cache/BIZTYCD`); const filtered: BIZ_CD_TYPE[] = Array.isArray(res) - ? (res as BIZ_CD_TYPE[]).filter(item => item?.lwpoCd !== "AQAAA") - : []; + ? (res as BIZ_CD_TYPE[]).filter(item => item?.lwpoCd !== "AQAAA") + : []; set({ BIZ_TY_CD: filtered }); } catch (e: any) { // alert("BIZ_TY_CD 데이터 로드 실패: " + e.message);