에러메시지 수정

feature-ADO2
김성경 2026-05-13 16:59:24 +09:00
parent f8ae482a16
commit d3502fd421
5 changed files with 18 additions and 21 deletions

View File

@ -275,8 +275,7 @@ const App: React.FC = () => {
setIsAnalysisComplete(true); setIsAnalysisComplete(true);
} catch (err) { } catch (err) {
console.error('Crawling failed:', err); console.error('Crawling failed:', err);
const errorMessage = err instanceof Error ? err.message : t('app.analysisError'); setError(t('app.analysisError'));
setError(errorMessage);
setViewMode('landing'); setViewMode('landing');
} }
}; };
@ -301,9 +300,7 @@ const App: React.FC = () => {
setIsAnalysisComplete(true); setIsAnalysisComplete(true);
} catch (err) { } catch (err) {
console.error('Autocomplete failed:', err); console.error('Autocomplete failed:', err);
const is404 = err instanceof Error && err.message.includes('status: 404'); setError(t('app.autocompleteError'));
const errorMessage = is404 ? t('app.autocompleteError') : (err instanceof Error ? err.message : t('app.autocompleteGeneralError'));
setError(errorMessage);
setViewMode('landing'); setViewMode('landing');
} }
}; };

View File

@ -550,8 +550,8 @@
"kakaoLoginFailed": "Kakao login failed. Please try again.", "kakaoLoginFailed": "Kakao login failed. Please try again.",
"loginUrlFailed": "Failed to get login URL. Please try again.", "loginUrlFailed": "Failed to get login URL. Please try again.",
"invalidUrl": "Invalid URL. Please enter a Naver Map URL.", "invalidUrl": "Invalid URL. Please enter a Naver Map URL.",
"analysisError": "An error occurred during analysis. Please try again.", "analysisError": "No results found. Please check your input and try again.",
"autocompleteError": "Failed to retrieve business information. Please enter the URL directly.", "autocompleteError": "No results found. Please check your input and try again.",
"autocompleteGeneralError": "An error occurred while retrieving business information. Please try again.", "autocompleteGeneralError": "An error occurred while retrieving business information. Please try again.",
"pageComingSoon": "{{page}} page is coming soon." "pageComingSoon": "{{page}} page is coming soon."
} }

View File

@ -550,8 +550,8 @@
"kakaoLoginFailed": "카카오 로그인에 실패했습니다. 다시 시도해주세요.", "kakaoLoginFailed": "카카오 로그인에 실패했습니다. 다시 시도해주세요.",
"loginUrlFailed": "로그인 URL을 가져오는데 실패했습니다. 다시 시도해주세요.", "loginUrlFailed": "로그인 URL을 가져오는데 실패했습니다. 다시 시도해주세요.",
"invalidUrl": "유효하지 않은 URL입니다. 네이버 지도 URL을 입력해주세요.", "invalidUrl": "유효하지 않은 URL입니다. 네이버 지도 URL을 입력해주세요.",
"analysisError": "분석 중 오류가 발생했습니다. 다시 시도해주세요.", "analysisError": "검색 정보를 찾을 수 없습니다. 입력 정보를 다시 확인해주세요.",
"autocompleteError": "업체 정보 조회에 실패했습니다. URL을 직접 입력해주세요.", "autocompleteError": "검색 정보를 찾을 수 없습니다. 입력 정보를 다시 확인해주세요.",
"autocompleteGeneralError": "업체 정보 조회 중 오류가 발생했습니다. 다시 시도해주세요.", "autocompleteGeneralError": "업체 정보 조회 중 오류가 발생했습니다. 다시 시도해주세요.",
"pageComingSoon": "{{page}} 페이지 준비 중입니다." "pageComingSoon": "{{page}} 페이지 준비 중입니다."
} }

View File

@ -248,8 +248,7 @@ const GenerationFlow: React.FC<GenerationFlowProps> = ({
setIsAnalysisComplete(true); setIsAnalysisComplete(true);
} catch (err) { } catch (err) {
console.error('Autocomplete error:', err); console.error('Autocomplete error:', err);
const msg = err instanceof Error ? err.message : ''; setAnalysisError(t('app.autocompleteError'));
setAnalysisError(/^HTTP error!/.test(msg) ? t('app.autocompleteError') : (msg || t('app.autocompleteError')));
goToWizardStep(-2); // URL 입력으로 돌아가기 goToWizardStep(-2); // URL 입력으로 돌아가기
} }
}; };
@ -318,8 +317,7 @@ const GenerationFlow: React.FC<GenerationFlowProps> = ({
setIsAnalysisComplete(true); setIsAnalysisComplete(true);
} catch (err) { } catch (err) {
console.error('Crawling failed:', err); console.error('Crawling failed:', err);
const errorMessage = err instanceof Error ? err.message : t('app.analysisError'); setAnalysisError(t('app.analysisError'));
setAnalysisError(errorMessage);
goToWizardStep(-2); // URL 입력으로 돌아가기 goToWizardStep(-2); // URL 입력으로 돌아가기
} }
}; };

View File

@ -160,14 +160,16 @@ const UrlInputContent: React.FC<UrlInputContentProps> = ({ onAnalyze, onAutocomp
const handleAnalyzeClick = () => { const handleAnalyzeClick = () => {
if (!inputValue.trim()) return; if (!inputValue.trim()) return;
if (searchType === 'name' && selectedItem && onAutocomplete) { if (searchType === 'name') {
// 업체명 검색인 경우 autocomplete API 호출 if (selectedItem && onAutocomplete) {
const request: AutocompleteRequest = { const request: AutocompleteRequest = {
address: selectedItem.address, address: selectedItem.address,
roadAddress: selectedItem.roadAddress, roadAddress: selectedItem.roadAddress,
title: selectedItem.title, title: selectedItem.title,
}; };
onAutocomplete(request); onAutocomplete(request);
}
// selectedItem 없으면 아무것도 하지 않음 (드롭다운에서 선택 필요)
} else { } else {
// URL 검색인 경우 기존 로직 // URL 검색인 경우 기존 로직
onAnalyze(inputValue.trim(), searchType); onAnalyze(inputValue.trim(), searchType);