From 9479fc0abe55a2fd4b47eb4052658a4af7e4e68d Mon Sep 17 00:00:00 2001 From: Macbook Date: Sun, 21 Jun 2026 23:32:21 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=EB=9E=B5=ED=8E=B8=EC=A7=91=EA=B8=B0?= =?UTF-8?q?=20=EB=AA=A9=EB=A1=9D=20=EA=B2=80=EC=83=89=EC=B0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/StrategyEditorPage.tsx | 23 ++++++++++++++++++- frontend/src/styles/strategyEditor.css | 22 ++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/StrategyEditorPage.tsx b/frontend/src/components/StrategyEditorPage.tsx index ba569aa..b9c40eb 100644 --- a/frontend/src/components/StrategyEditorPage.tsx +++ b/frontend/src/components/StrategyEditorPage.tsx @@ -300,6 +300,7 @@ export default function StrategyEditorPage({ const [compositePalette, setCompositePalette] = useState(() => loadPaletteItems('composite')); const [sidewaysPalette, setSidewaysPalette] = useState(() => loadSidewaysPaletteItems()); const [paletteSearch, setPaletteSearch] = useState(''); + const [strategyListSearch, setStrategyListSearch] = useState(''); const [templateSearch, setTemplateSearch] = useState(''); const [userTemplates, setUserTemplates] = useState(() => loadUserStrategyTemplates()); const [hiddenBuiltinTemplateIds, setHiddenBuiltinTemplateIds] = useState( @@ -1710,6 +1711,16 @@ export default function StrategyEditorPage({ const match = (label: string, desc?: string) => !q || label.toLowerCase().includes(q) || (desc?.toLowerCase().includes(q) ?? false); + const strategySearchQuery = strategyListSearch.trim().toLowerCase(); + const filteredStrategies = useMemo(() => { + if (!strategySearchQuery) return strategies; + return strategies.filter(s => { + const name = s.name?.toLowerCase() ?? ''; + const desc = s.description?.toLowerCase() ?? ''; + return name.includes(strategySearchQuery) || desc.includes(strategySearchQuery); + }); + }, [strategies, strategySearchQuery]); + const paletteKey = (type: string, id: string) => `${type}:${id}`; const selectPalette = (type: string, id: string) => { setSelectedPaletteKey(paletteKey(type, id)); @@ -1880,6 +1891,14 @@ export default function StrategyEditorPage({

전략 목록

+ setStrategyListSearch(e.target.value)} + aria-label="전략 목록 검색" + />