From 7e54940963183d8337b9c83f85bdda9f365191e3 Mon Sep 17 00:00:00 2001 From: SeongHyun Kim Date: Tue, 24 Mar 2026 18:33:47 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B0=80=EB=82=98=EB=8B=A4=20=ED=95=84?= =?UTF-8?q?=ED=84=B0=20=EA=B2=80=EC=83=89=EC=96=B4=20=EC=9E=85=EB=A0=A5=20?= =?UTF-8?q?=EC=8B=9C=20=EC=A0=84=EC=B2=B4=20=EB=B2=94=EC=9C=84=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=EC=96=B4=20=EC=9E=85=EB=A0=A5=20=EC=8B=9C=20activeFil?= =?UTF-8?q?terTab(=EC=B4=88=EC=84=B1/=EC=95=8C=ED=8C=8C=EB=B2=B3)=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EA=B0=80=20=EB=8F=99=EC=8B=9C=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9=EB=90=98=EC=96=B4=20=EA=B2=80=EC=83=89=20=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=EA=B0=80=20=ED=98=84=EC=9E=AC=20=ED=83=AD=20=EB=82=B4?= =?UTF-8?q?=EB=A1=9C=20=EC=A0=9C=ED=95=9C=EB=90=98=EB=8D=98=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=EB=A5=BC=20=EC=88=98=EC=A0=95=ED=95=9C=EB=8B=A4.=20se?= =?UTF-8?q?archText=EA=B0=80=20=EC=9E=88=EC=9C=BC=EB=A9=B4=20=ED=95=84?= =?UTF-8?q?=ED=84=B0=20=ED=83=AD=EC=9D=84=20=EB=AC=B4=EC=8B=9C=ED=95=98?= =?UTF-8?q?=EA=B3=A0=20=EC=A0=84=EC=B2=B4=20=EB=8D=B0=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EA=B2=80=EC=83=89=ED=95=9C=EB=8B=A4.=20Co?= =?UTF-8?q?-Authored-By:=20Claude=20Sonnet=204.6=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pop-components/pop-search/PopSearchComponent.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/lib/registry/pop-components/pop-search/PopSearchComponent.tsx b/frontend/lib/registry/pop-components/pop-search/PopSearchComponent.tsx index 752f57ec..f8d803d3 100644 --- a/frontend/lib/registry/pop-components/pop-search/PopSearchComponent.tsx +++ b/frontend/lib/registry/pop-components/pop-search/PopSearchComponent.tsx @@ -799,8 +799,8 @@ function ModalDialog({ open, onOpenChange, modalConfig, title, onSelect }: Modal ); } - // 필터 탭 (초성/알파벳) 적용 - if (activeFilterTab && displayField) { + // 필터 탭 (초성/알파벳) 적용 — 검색어 입력 시에는 전체 범위에서 검색 + if (activeFilterTab && displayField && !searchText.trim()) { items = items.filter((row) => { const val = row[displayField]; if (val == null) return false; @@ -812,9 +812,9 @@ function ModalDialog({ open, onOpenChange, modalConfig, title, onSelect }: Modal return items; }, [allRows, searchText, searchColumns, colsToShow, searchMode, activeFilterTab, displayField]); - // 그룹화 (필터 탭 활성화 시) + // 그룹화 (필터 탭 활성화 시, 검색어 없을 때만) const groupedRows = useMemo(() => { - if (!activeFilterTab || !displayField) return null; + if (!activeFilterTab || !displayField || searchText.trim()) return null; const groups = new Map[]>(); for (const row of filteredRows) { @@ -828,7 +828,7 @@ function ModalDialog({ open, onOpenChange, modalConfig, title, onSelect }: Modal // 정렬 const sorted = [...groups.entries()].sort(([a], [b]) => a.localeCompare(b, "ko")); return sorted; - }, [filteredRows, activeFilterTab, displayField]); + }, [filteredRows, activeFilterTab, displayField, searchText]); const handleSearchChange = (e: React.ChangeEvent) => { const v = e.target.value;