-
+
diff --git a/solution/frontend/src/features/onboarding/WizardSteps.tsx b/solution/frontend/src/features/onboarding/WizardSteps.tsx
index 6fe4b1c..07297c6 100644
--- a/solution/frontend/src/features/onboarding/WizardSteps.tsx
+++ b/solution/frontend/src/features/onboarding/WizardSteps.tsx
@@ -4,17 +4,17 @@ import {cn} from '@/lib/utils';
/**
* 위저드 진행 표시.
*
- * 1(신원 확인)과 2(사실 확인)가 왜 따로인지 사장님이 한눈에 알게 하는 것이 이 줄의 목적이다 —
- * "가게가 맞나" 를 먼저 끝내고 "값이 맞나" 로 넘어간다.
+ * "가게가 맞나"(1·2) 를 먼저 끝내고 "값이 맞나"(3) 로 넘어간다는 것을 한눈에 보이게 하는 줄이다.
*
- * ★ 업종은 더 이상 단계가 아니다. 검색 결과의 분류가 정하고(못 정할 때만 1단계 안에서 묻는다),
- * 그래서 네 칸이던 줄이 세 칸이 됐다 — 사장님이 처음 보는 화면이 "우리는 카페인가 음식점인가"
- * 가 아니라 "가게 이름"이 되게 하는 것이 이 변경의 목적이다.
+ * ★ 찾기와 고르기는 **따로 센다.** 한 칸에 화면 둘을 담으면 후보 목록에서 뒤로가기를 눌러도
+ * 번호가 그대로라 사장님은 앞 화면이 되돌아온 것으로 읽는다. 화면이 바뀌면 칸도 바뀐다.
+ * ★ 업종은 칸이 아니다 — 검색 결과의 분류가 정하고, 못 정할 때만 2단계 안에서 묻는다.
*/
const STEPS = [
- {step: 1, label: '내 가게 확인'},
- {step: 2, label: '수집 정보 확인'},
- {step: 3, label: '템플릿'},
+ {step: 1, label: '내 가게 찾기'},
+ {step: 2, label: '가게 고르기'},
+ {step: 3, label: '수집 정보 확인'},
+ {step: 4, label: '템플릿'},
] as const;
export function WizardSteps({current}: {current: number}) {
diff --git a/solution/frontend/src/features/onboarding/wizardUrl.ts b/solution/frontend/src/features/onboarding/wizardUrl.ts
index 5190181..d412783 100644
--- a/solution/frontend/src/features/onboarding/wizardUrl.ts
+++ b/solution/frontend/src/features/onboarding/wizardUrl.ts
@@ -12,6 +12,14 @@ import {useSearchParams} from 'react-router';
export const WIZARD_STEPS = [
/** 상호명으로 내 가게 찾기 — 위저드의 시작점이다. */
'search',
+ /**
+ * 찾은 후보 중에서 내 가게 고르기.
+ *
+ * ★ 예전엔 이 화면이 `search` 안의 상태였다(컴포넌트 state). 주소가 안 바뀌니 후보 목록에서
+ * 뒤로가기를 누르면 이전 단계가 아니라 **위저드 밖으로** 나갔다 — 한 칸에 화면이 둘이라
+ * 진행 표시도 그대로였다. 화면이 바뀌면 주소도 바뀐다.
+ */
+ 'pick',
/** 업종 직접 고르기. 검색 결과가 업종을 못 정했을 때, 또는 [바꾸기] 로 들어온다. */
'industry',
'collect',
@@ -28,16 +36,17 @@ export const EDITOR_STEP: WizardStep = 'editor';
/**
* 진행 표시(WizardSteps)에 찍히는 번호.
*
- * ★ 업종 화면은 '내 가게 확인' 안의 **갈래**라 같은 1번이다. 업종은 검색 결과가 정하고
- * 못 정했을 때만 사람에게 묻는 것이라, 별도 단계로 세면 사장님은 안 겪을 수도 있는 단계를
- * 진행 표시에서 계속 보게 된다.
+ * ★ 업종 화면은 '가게 고르기' 안의 **갈래**라 같은 2번이다. 후보를 고른 직후 업종을 못 정했을
+ * 때만 들르는 곳이고, 별도 칸으로 세우면 사장님 대부분이 안 겪는 단계를 계속 보게 된다.
+ * (한 칸에 화면이 둘이어도 되는 건 **둘 다 주소를 가져서**다 — 뒤로가기가 화면 단위로 돈다.)
* ★ 생성 화면은 진행 표시를 그리지 않는다(0 은 "표시할 번호가 없다"는 뜻이다).
*/
export const STEP_NUMBER: Record = {
search: 1,
- industry: 1,
- collect: 2,
- template: 3,
+ pick: 2,
+ industry: 2,
+ collect: 3,
+ template: 4,
generating: 0,
editor: 0,
};
diff --git a/solution/frontend/src/features/publish/publishGate.ts b/solution/frontend/src/features/publish/publishGate.ts
index 4a70569..b5a4dff 100644
--- a/solution/frontend/src/features/publish/publishGate.ts
+++ b/solution/frontend/src/features/publish/publishGate.ts
@@ -101,7 +101,7 @@ export function runPublishGate(input: GateInput): GateResult {
severity: 'block',
title: '상호명이 비어 있습니다',
detail: '상호명은 제목·구조화 데이터·주소 슬러그의 기준값입니다.',
- fix: '2단계에서 상호명을 입력해 주세요.',
+ fix: '1단계에서 상호명을 입력해 주세요.',
});
}
diff --git a/solution/frontend/src/pages/BuilderPage.tsx b/solution/frontend/src/pages/BuilderPage.tsx
index bedb166..b2d0719 100644
--- a/solution/frontend/src/pages/BuilderPage.tsx
+++ b/solution/frontend/src/pages/BuilderPage.tsx
@@ -93,7 +93,7 @@ export function BuilderPage() {
}, [isNew, seedQuery, seedIndustry, reset, selectIndustry, setStoreName, setSearchParams]);
/**
- * 위저드 1단계에서 확정한 사업장. 주소창에 placeId 가 없어도 이걸로 배선한다.
+ * 위저드 2단계(가게 고르기)에서 확정한 사업장. 주소창에 placeId 가 없어도 이걸로 배선한다.
*
* ★ 이게 없으면 위저드를 끝까지 걸어온 사장님이 에디터에서 **업종 예시값**을 본다 —
* 방금 27건을 확인해 놓고 '독채 3개 동' 같은 남의 가게 값이 뜬다. 실제로 그랬다.
@@ -267,7 +267,8 @@ export function BuilderPage() {
- {step === 'search' && }
+ {/* 상호 입력과 후보 고르기는 한 컴포넌트다 — 후보 목록이 훅 state 라 갈리면 사라진다. */}
+ {(step === 'search' || step === 'pick') && }
{step === 'industry' && }
{step === 'collect' && }
{step === 'template' && }