From d3502fd42170f097b591eecb4eef4b245bf2a491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=84=B1=EA=B2=BD?= Date: Wed, 13 May 2026 16:59:24 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=90=EB=9F=AC=EB=A9=94=EC=8B=9C=EC=A7=80?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 7 ++----- src/locales/en.json | 4 ++-- src/locales/ko.json | 4 ++-- src/pages/Dashboard/GenerationFlow.tsx | 6 ++---- src/pages/Dashboard/UrlInputContent.tsx | 18 ++++++++++-------- 5 files changed, 18 insertions(+), 21 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 279fe8d..30953e8 100755 --- a/src/App.tsx +++ b/src/App.tsx @@ -275,8 +275,7 @@ const App: React.FC = () => { setIsAnalysisComplete(true); } catch (err) { console.error('Crawling failed:', err); - const errorMessage = err instanceof Error ? err.message : t('app.analysisError'); - setError(errorMessage); + setError(t('app.analysisError')); setViewMode('landing'); } }; @@ -301,9 +300,7 @@ const App: React.FC = () => { setIsAnalysisComplete(true); } catch (err) { console.error('Autocomplete failed:', err); - const is404 = err instanceof Error && err.message.includes('status: 404'); - const errorMessage = is404 ? t('app.autocompleteError') : (err instanceof Error ? err.message : t('app.autocompleteGeneralError')); - setError(errorMessage); + setError(t('app.autocompleteError')); setViewMode('landing'); } }; diff --git a/src/locales/en.json b/src/locales/en.json index 96ab94f..848bfa7 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -550,8 +550,8 @@ "kakaoLoginFailed": "Kakao login failed. Please try again.", "loginUrlFailed": "Failed to get login URL. Please try again.", "invalidUrl": "Invalid URL. Please enter a Naver Map URL.", - "analysisError": "An error occurred during analysis. Please try again.", - "autocompleteError": "Failed to retrieve business information. Please enter the URL directly.", + "analysisError": "No results found. Please check your input and try again.", + "autocompleteError": "No results found. Please check your input and try again.", "autocompleteGeneralError": "An error occurred while retrieving business information. Please try again.", "pageComingSoon": "{{page}} page is coming soon." } diff --git a/src/locales/ko.json b/src/locales/ko.json index 577d754..aee7f29 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -550,8 +550,8 @@ "kakaoLoginFailed": "카카오 로그인에 실패했습니다. 다시 시도해주세요.", "loginUrlFailed": "로그인 URL을 가져오는데 실패했습니다. 다시 시도해주세요.", "invalidUrl": "유효하지 않은 URL입니다. 네이버 지도 URL을 입력해주세요.", - "analysisError": "분석 중 오류가 발생했습니다. 다시 시도해주세요.", - "autocompleteError": "업체 정보 조회에 실패했습니다. URL을 직접 입력해주세요.", + "analysisError": "검색 정보를 찾을 수 없습니다. 입력 정보를 다시 확인해주세요.", + "autocompleteError": "검색 정보를 찾을 수 없습니다. 입력 정보를 다시 확인해주세요.", "autocompleteGeneralError": "업체 정보 조회 중 오류가 발생했습니다. 다시 시도해주세요.", "pageComingSoon": "{{page}} 페이지 준비 중입니다." } diff --git a/src/pages/Dashboard/GenerationFlow.tsx b/src/pages/Dashboard/GenerationFlow.tsx index 0709821..77bbcab 100755 --- a/src/pages/Dashboard/GenerationFlow.tsx +++ b/src/pages/Dashboard/GenerationFlow.tsx @@ -248,8 +248,7 @@ const GenerationFlow: React.FC = ({ setIsAnalysisComplete(true); } catch (err) { console.error('Autocomplete error:', err); - const msg = err instanceof Error ? err.message : ''; - setAnalysisError(/^HTTP error!/.test(msg) ? t('app.autocompleteError') : (msg || t('app.autocompleteError'))); + setAnalysisError(t('app.autocompleteError')); goToWizardStep(-2); // URL 입력으로 돌아가기 } }; @@ -318,8 +317,7 @@ const GenerationFlow: React.FC = ({ setIsAnalysisComplete(true); } catch (err) { console.error('Crawling failed:', err); - const errorMessage = err instanceof Error ? err.message : t('app.analysisError'); - setAnalysisError(errorMessage); + setAnalysisError(t('app.analysisError')); goToWizardStep(-2); // URL 입력으로 돌아가기 } }; diff --git a/src/pages/Dashboard/UrlInputContent.tsx b/src/pages/Dashboard/UrlInputContent.tsx index 2d8f927..063524f 100644 --- a/src/pages/Dashboard/UrlInputContent.tsx +++ b/src/pages/Dashboard/UrlInputContent.tsx @@ -160,14 +160,16 @@ const UrlInputContent: React.FC = ({ onAnalyze, onAutocomp const handleAnalyzeClick = () => { if (!inputValue.trim()) return; - if (searchType === 'name' && selectedItem && onAutocomplete) { - // 업체명 검색인 경우 autocomplete API 호출 - const request: AutocompleteRequest = { - address: selectedItem.address, - roadAddress: selectedItem.roadAddress, - title: selectedItem.title, - }; - onAutocomplete(request); + if (searchType === 'name') { + if (selectedItem && onAutocomplete) { + const request: AutocompleteRequest = { + address: selectedItem.address, + roadAddress: selectedItem.roadAddress, + title: selectedItem.title, + }; + onAutocomplete(request); + } + // selectedItem 없으면 아무것도 하지 않음 (드롭다운에서 선택 필요) } else { // URL 검색인 경우 기존 로직 onAnalyze(inputValue.trim(), searchType);