diff --git a/packages/common/business_components/src/ui/dialog_ui/index.tsx b/packages/common/business_components/src/ui/dialog_ui/index.tsx
index 0858a66b8..4201cbdfa 100644
--- a/packages/common/business_components/src/ui/dialog_ui/index.tsx
+++ b/packages/common/business_components/src/ui/dialog_ui/index.tsx
@@ -41,7 +41,7 @@ export function UiModal({
{(open && body) ?
useDirectRender
? body
- :
{body}
+ : <>{body}>
: <>>
}
{noFooterYn === 'N' && (
diff --git a/packages/common/business_components/src/ui/map/searchBar/comboSearchBar.tsx b/packages/common/business_components/src/ui/map/searchBar/comboSearchBar.tsx
index 3289ae53f..e59fd762c 100644
--- a/packages/common/business_components/src/ui/map/searchBar/comboSearchBar.tsx
+++ b/packages/common/business_components/src/ui/map/searchBar/comboSearchBar.tsx
@@ -57,10 +57,47 @@ export const ComboSearchBar = ({
const url = `/geoserver/hasudo/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=hasudo:tb_ms_ctpv&outputFormat=application/json&propertyName=mctpv_korn_nm,mctpv_cd`;
const res = await fetch(url).then(res => res.json());
- const list = res.features.map((f: any) => ({
- text: f.properties.mctpv_korn_nm,
- val: f.properties.mctpv_cd,
- }));
+ const list = res.features
+ .map((f: any) => ({
+ text: f.properties.mctpv_korn_nm,
+ val: f.properties.mctpv_cd,
+ })).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');
+ });
setSidoData([{ text: "선택", val: "0" }, ...list]);
};
@@ -68,10 +105,12 @@ export const ComboSearchBar = ({
const url = `/geoserver/hasudo/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=hasudo:tb_ms_sgg&outputFormat=application/json&propertyName=sgg_cd,sgg_korn_nm`;
const res = await fetch(url).then(res => res.json());
- const list = res.features.map((f: any) => ({
- text: f.properties.sgg_korn_nm,
- val: f.properties.sgg_cd,
- }));
+ const list = res.features
+ .map((f: any) => ({
+ text: f.properties.sgg_korn_nm,
+ val: f.properties.sgg_cd,
+ }))
+ .sort((a, b) => a.text.localeCompare(b.text, 'ko'));
setSigunData(list);
};
diff --git a/packages/common/business_components/src/ui/map/searchBar/procSearchBar.tsx b/packages/common/business_components/src/ui/map/searchBar/procSearchBar.tsx
index 5fe3233e2..465471715 100644
--- a/packages/common/business_components/src/ui/map/searchBar/procSearchBar.tsx
+++ b/packages/common/business_components/src/ui/map/searchBar/procSearchBar.tsx
@@ -48,7 +48,43 @@ export const ProcSearchBar = ({ gisMaps, facilityTypes }: SearchBarProps) => {
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');
+ });
setSidoData([{ text: "시도", val: "0" }, ...list]);
};
diff --git a/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx b/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx
index eee60ca41..17a3a1add 100644
--- a/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx
+++ b/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx
@@ -58,10 +58,48 @@ export const SearchBar = ({
const json = await res.json();
const sidoList = json
.filter((item: any) => item.lwpoCd?.length === 2)
- .map((item: any) => ({ val: item.lwpoCd, text: item.lwpoCdNm }));
+ .map((item: any) => ({ val: item.lwpoCd, text: item.lwpoCdNm }))
+ .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');
+ });
const sigunList = json
.filter((item: any) => item.lwpoCd?.length > 2)
- .map((item: any) => ({ val: item.lwpoCd, text: item.lwpoCdNm }));
+ .map((item: any) => ({ val: item.lwpoCd, text: item.lwpoCdNm }))
+ .sort((a, b) => a.text.localeCompare(b.text, 'ko'));
setSidoData([{ text: "시도", val: "0" }, ...sidoList]);
setSigunData(sigunList);
};