From 7f0d1cf87757e48cbfb64a5ee5d92f68734eb8d4 Mon Sep 17 00:00:00 2001 From: Daseul Kim Date: Tue, 27 May 2025 13:39:11 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=A7=80=EB=B6=95=EC=9E=AC=20=EC=A0=81?= =?UTF-8?q?=ED=95=A9=EC=84=B1=20=EA=B2=80=EC=83=89=EC=96=B4=2030=EA=B8=80?= =?UTF-8?q?=EC=9E=90=20=EC=A0=9C=ED=95=9C=20=EC=B2=98=EB=A6=AC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/suitable/SuitableSearch.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/suitable/SuitableSearch.tsx b/src/components/suitable/SuitableSearch.tsx index 1337ced..8b4a883 100644 --- a/src/components/suitable/SuitableSearch.tsx +++ b/src/components/suitable/SuitableSearch.tsx @@ -12,6 +12,15 @@ export default function SuitableSearch() { const { getSuitableCommCode, clearSuitableSearch } = useSuitable() const { suitableCommCode, selectedCategory, setSelectedCategory, setSearchKeyword } = useSuitableStore() + const handleInputChange = (value: string) => { + if (Array.from(value).length > 30) { + alert('検索ワードは最大30文字まで入力できます。') + setSearchValue(value.slice(0, 30)) + return + } + setSearchValue(value) + } + const handleInputSearch = async () => { if (!searchValue.trim()) { alert('屋根材の製品名を入力してください。') @@ -51,7 +60,7 @@ export default function SuitableSearch() { className="search-frame" placeholder="屋根材 製品名を入力してください." value={searchValue} - onChange={(e) => setSearchValue(e.target.value)} + onChange={(e) => handleInputChange(e.target.value)} onKeyDown={(e) => { if (e.key === 'Enter') { handleInputSearch()