1번 칸이 화면 두 개를 담고 있었다: 상호 입력과 후보 목록. 후보 목록은 컴포넌트 state 라 주소가 안 바뀌고, 그래서 목록에서 뒤로가기를 누르면 이전 화면이 아니라 **위저드 밖**으로 나갔다(진입 직전 화면 = /sites). 진행 표시도 그대로 1이라 앞 화면이 되돌아온 것처럼 보인다. - wizardUrl: `pick` 단계 추가. 진행 번호는 1 찾기 · 2 고르기 · 3 수집 · 4 템플릿. 업종은 여전히 칸이 아니다(2번의 갈래) — 한 칸에 화면이 둘이어도 되는 건 **둘 다 주소를 가져서**다. 대부분의 사장님은 안 겪는 화면이라 칸으로 세우지 않는다 - Step2PlaceSearch 가 두 단계를 함께 그린다. 후보 목록이 훅 state 라 컴포넌트를 가르면 단계를 오갈 때마다 사라진다 - 상호 입력으로 돌아오면 후보를 버리고, 후보 단계로 곧장 들어왔는데 후보가 없으면 상호로 다시 찾는다. 상호도 없으면 첫 화면으로 replace — 빈 화면을 히스토리에 남기지 않는다 - 업종 화면은 `pick` 으로 돌아온다(상호 입력까지 되돌리면 방금 고른 가게가 사라진다). 돌아온 직후의 빈 목록은 '확정하는 중' 대기 화면으로 덮는다 - 진행 번호는 각 화면이 아니라 wizardUrl(STEP_NUMBER)이 소유한다 — 칸이 늘고 줄 때마다 화면 네 곳을 같이 고치지 않게 - publishGate: '2단계에서 상호명을' → 1단계 검증 — tsc·eslint·vite build 통과. 브라우저에서 확인: 검색 → `?step=pick`, 뒤로가기가 상호 입력으로(입력값 유지), 앞으로가기는 재검색해 목록 복원, `?step=pick` 직접 진입은 `?step=search` 로 되돌림, 확정하면 3단계로 진행 |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .env.example | ||
| components.json | ||
| eslint.config.js | ||
| index.html | ||
| orval.config.ts | ||
| package.json | ||
| tsconfig.json | ||
| vite.config.ts | ||