Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
eafb1b2
Merge pull request #1 from FE-Forge/서준
junny97 May 23, 2025
37b529a
docs: 리드미 업데이트
junny97 May 23, 2025
74327be
docs: 리드미 업데이트
junny97 May 23, 2025
43a9aa7
docs: 리드미 시연영상 업데이트
junny97 May 31, 2025
a200fb9
docs: 리드미 수정
junny97 May 31, 2025
ca63d64
chore: 프로젝트 필요 패키지 설정
junny97 Jun 4, 2025
1d38dd2
style: Tailwind CSS 글로벌 스타일 설정
junny97 Jun 4, 2025
1511102
feat: 온보딩 API 및 상수 파일 추가
junny97 Jun 4, 2025
1b87c36
feat: zod를 사용한 온보딩 단계 유효성 검사 / 스키마 정의로 타입 추론
junny97 Jun 4, 2025
cbec9aa
config: ESLint 설정 개선 및 코드 품질 규칙 최적화
junny97 Jun 5, 2025
eb26e1d
feat: Compound Component 패턴 기반 Funnel 시스템 구현 (Context API + URL STEP …
junny97 Jun 5, 2025
a3133fb
feat: 온보딩 단계별 폼 컴포넌트 추가
junny97 Jun 5, 2025
7d4e7a6
온보딩 컴포넌트& 비즈니스 로직 중앙화 및 최종 form 제출 muatation hook 구현
junny97 Jun 5, 2025
159d313
feat: useId 기반 온보딩 결과 데이터 조회 커스텀 훅 & 결과 지페이지 추가
junny97 Jun 5, 2025
82dbaff
feat: 프라이빗 라우터 & 온보딩 페이지 라우팅 설정
junny97 Jun 5, 2025
c625a9e
refactor: 온보딩 컴포넌트에서 공통 UI 요소(Button, Header, Input) 공통 컴포넌트로 분리
junny97 Jun 5, 2025
4bc27de
refactor: useFunnel 훅 내부에서 유효하지 않는 url 상태 방지 로직 설정
junny97 Jun 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
## Multi-Step-Form 기능 요구사항

#### [온보딩 Swagger API](https://onboarding-server-idpj.onrender.com/docs)

### 시연영상

<p align="center">
<img src="example-form.gif" alt="example-form" />
</p>

### 1. 온보딩 등록 폼 공통 요구사항

- [ ] 4단계로 구성된 프로필 등록 폼 구현 (닉네임 → 성별 → 선호 장르 → 인생 영화 혹은 드라마)
Expand Down Expand Up @@ -27,12 +35,16 @@
- [ ] 최소 1개 이상 선택해야 다음 단계로 이동 가능
- [ ] 선택된 장르는 시각적으로 구분되어야 함

#### 4단계: 인생 영화 입력
#### 4단계: 좋아하는 작품 입력

- [ ] 자유 텍스트 입력 필드 구현
- [ ] 입력값이 있어야 완료 버튼 활성화
- [ ] 완료 시 전체 입력 데이터를 확인할 수 있어야 함

#### 5단계: 온보딩 결과 페이지

- [ ] 1 ~ 4 단계에서 사용자가 입력한 정보 데이터를 최종적으로 규합하여 확인할 수 있어야 함

### 3.기술적 요구사항 포인트

- [ ] 단계별 컴포넌트 분리 및 재사용 가능한 구조
Expand Down
19 changes: 8 additions & 11 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
import js from '@eslint/js';
import globals from 'globals';
import reactHooks from 'eslint-plugin-react-hooks';
import reactRefresh from 'eslint-plugin-react-refresh';
import tseslint from 'typescript-eslint';

export default tseslint.config(
{ ignores: ['dist'] },
Expand All @@ -19,10 +19,7 @@ export default tseslint.config(
},
rules: {
...reactHooks.configs.recommended.rules,
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
'react-refresh/only-export-components': 'off',
},
},
)
}
);
Binary file added example-form.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 13 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,25 @@
"preview": "vite preview"
},
"dependencies": {
"@hookform/resolvers": "^5.0.1",
"@tailwindcss/vite": "^4.1.8",
"@tanstack/react-query": "^5.80.2",
"axios": "^1.9.0",
"react": "^19.1.0",
"react-dom": "^19.1.0"
"react-dom": "^19.1.0",
"react-hook-form": "^7.57.0",
"react-router-dom": "^7.6.2",
"tailwindcss": "^4.1.8",
"zod": "^3.25.50"
},
"devDependencies": {
"@eslint/js": "^9.25.0",
"@hookform/devtools": "^4.4.0",
"@tanstack/react-query-devtools": "^5.80.2",
"@types/node": "^22.15.29",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.2",
"@types/react-router-dom": "^5.3.3",
"@vitejs/plugin-react": "^4.4.1",
"eslint": "^9.25.0",
"eslint-plugin-react-hooks": "^5.2.0",
Expand Down
Loading