FC-DEV-FinalProject / final-fe-team4

4조 프론트엔드 깃허브
0 stars 2 forks source link

[feat] 회원가입 페이지 #127

Closed dhkim511 closed 2 weeks ago

dhkim511 commented 2 weeks ago

회원가입 페이지

Sourcery에 의한 요약

사용자 등록을 위한 상세한 양식이 포함된 새로운 가입 페이지를 구현하고, 유효성 검사 및 약관 동의 기능을 포함합니다. 양식 처리 및 유효성 검사를 지원하기 위해 종속성을 업데이트합니다.

새로운 기능:

개선 사항:

빌드:

Original summary in English ## Summary by Sourcery Implement a new signup page with a detailed form for user registration, including validation and terms agreement functionality. Update dependencies to support form handling and validation. New Features: - Implement a new signup page with a comprehensive form for user registration, including fields for email, password, name, gender, birth date, phone, and terms agreement. Enhancements: - Add validation schema for the signup form using Zod to ensure data integrity and provide user feedback on form submission. Build: - Add new dependencies including '@hookform/resolvers', 'react-hook-form', and 'zod' to support form handling and validation.
sourcery-ai[bot] commented 2 weeks ago

리뷰어 가이드 by Sourcery

이 PR은 폼 유효성 검사와 약관 동의 기능을 갖춘 회원가입 페이지를 구현합니다. 구현은 React Hook Form과 Zod를 사용하여 폼 유효성 검사를 수행하며, 입력 필드, 체크박스, 약관 대화 상자를 위한 UI 컴포넌트를 포함합니다. 폼은 이메일, 비밀번호, 이름, 성별, 전화번호, 필수 약관 동의 필드를 사용하여 사용자 등록을 처리합니다.

SignupForm 컴포넌트의 클래스 다이어그램

classDiagram
  class SignupForm {
    - useForm<SignupFormData>
    - useState(termsDialog)
    + onSubmit(data: SignupFormData)
    + handleEmailCheck()
    + handleOpenTerms(type: 'service' | 'privacy')
  }
  class SignupFormData {
    + email: string
    + password: string
    + passwordConfirm: string
    + name: string
    + gender: string
    + birth_date: string
    + phone: string
    + terms: string[]
  }
  class TermsDialog {
    + open: boolean
    + onOpenChange(open: boolean)
    + title: string
    + content: string
  }
  SignupForm --> SignupFormData
  SignupForm --> TermsDialog

폼 유효성 검사 스키마의 클래스 다이어그램

classDiagram
  class signupFormSchema {
    + email: string
    + password: string
    + passwordConfirm: string
    + name: string
    + gender: string
    + birth_date: string
    + phone: string
    + terms: string[]
  }
  class SignupRequest {
    + email: string
    + pwd: string
    + name: string
    + gender: string | null
    + birth_date: string
    + phone_number: string
    + tou: string
    + is_deleted: boolean
  }
  signupFormSchema --> SignupRequest

파일 수준 변경 사항

변경 사항 세부 사항 파일
유효성 검사를 포함한 회원가입 폼 컴포넌트 구현
  • 이메일, 비밀번호, 이름, 성별, 전화번호에 대한 폼 필드 추가
  • React Hook Form과 Zod를 사용한 폼 유효성 검사 구현
  • 이메일 중복 확인 기능 추가
  • 비밀번호 확인 유효성 검사 생성
  • '전체 선택' 기능이 있는 약관 동의 체크박스 추가
src/components/forms/SignupForm.tsx
회원가입을 위한 유효성 검사 스키마 및 타입 생성
  • 회원가입 폼을 위한 Zod 유효성 검사 스키마 정의
  • 폼 데이터 및 API 요청을 위한 타입 생성
  • 비밀번호 및 전화번호에 대한 유효성 검사 패턴 추가
  • API 요청을 위한 폼 데이터 변환 함수 구현
src/utils/signupSchema.ts
src/types/signup.ts
src/constants/validation.ts
약관 및 조건 대화 상자 컴포넌트 추가
  • 약관 표시를 위한 재사용 가능한 대화 상자 컴포넌트 생성
  • 긴 콘텐츠를 위한 스크롤 영역 추가
  • 약관 콘텐츠 상수 구현
src/components/forms/TermsDialog.tsx
src/constants/terms.ts
폼 요소를 위한 UI 컴포넌트 추가
  • 유효성 검사 지원이 있는 폼 래퍼 컴포넌트 생성
  • 스타일링 변형이 있는 레이블 컴포넌트 추가
  • 약관 표시를 위한 대화 상자 컴포넌트 업데이트
src/components/ui/form.tsx
src/components/ui/label.tsx
src/components/ui/dialog.tsx

관련된 문제일 가능성 있음


팁 및 명령어 #### Sourcery와 상호작용하기 - **새로운 리뷰 트리거:** 풀 리퀘스트에 `@sourcery-ai review`라고 댓글을 남깁니다. - **토론 계속하기:** Sourcery의 리뷰 댓글에 직접 답장합니다. - **리뷰 댓글에서 GitHub 이슈 생성:** 리뷰 댓글에서 Sourcery에게 이슈 생성을 요청합니다. - **풀 리퀘스트 제목 생성:** 풀 리퀘스트 제목 어디에나 `@sourcery-ai`를 작성하여 언제든지 제목을 생성합니다. - **풀 리퀘스트 요약 생성:** 풀 리퀘스트 본문 어디에나 `@sourcery-ai summary`를 작성하여 언제든지 PR 요약을 생성합니다. 이 명령어를 사용하여 요약이 삽입될 위치를 지정할 수도 있습니다. #### 경험 맞춤화하기 [대시보드](https://app.sourcery.ai)에 접속하여: - Sourcery가 생성한 풀 리퀘스트 요약, 리뷰어 가이드 등과 같은 리뷰 기능을 활성화하거나 비활성화합니다. - 리뷰 언어를 변경합니다. - 사용자 정의 리뷰 지침을 추가, 제거 또는 편집합니다. - 기타 리뷰 설정을 조정합니다. #### 도움 받기 - 질문이나 피드백이 있는 경우 [지원 팀에 문의](mailto:support@sourcery.ai)하십시오. - 자세한 가이드와 정보를 보려면 [문서](https://docs.sourcery.ai)를 방문하십시오. - [X/Twitter](https://x.com/SourceryAI), [LinkedIn](https://www.linkedin.com/company/sourcery-ai/) 또는 [GitHub](https://github.com/sourcery-ai)에서 Sourcery 팀을 팔로우하여 소식을 받아보세요.
Original review guide in English ## Reviewer's Guide by Sourcery This PR implements a signup page with form validation and terms agreement functionality. The implementation uses React Hook Form with Zod for form validation, and includes UI components for input fields, checkboxes, and a terms dialog. The form handles user registration with fields for email, password, name, gender, phone number, and required terms agreements. #### Class diagram for the SignupForm component ```mermaid classDiagram class SignupForm { - useForm - useState(termsDialog) + onSubmit(data: SignupFormData) + handleEmailCheck() + handleOpenTerms(type: 'service' | 'privacy') } class SignupFormData { + email: string + password: string + passwordConfirm: string + name: string + gender: string + birth_date: string + phone: string + terms: string[] } class TermsDialog { + open: boolean + onOpenChange(open: boolean) + title: string + content: string } SignupForm --> SignupFormData SignupForm --> TermsDialog ``` #### Class diagram for the form validation schema ```mermaid classDiagram class signupFormSchema { + email: string + password: string + passwordConfirm: string + name: string + gender: string + birth_date: string + phone: string + terms: string[] } class SignupRequest { + email: string + pwd: string + name: string + gender: string | null + birth_date: string + phone_number: string + tou: string + is_deleted: boolean } signupFormSchema --> SignupRequest ``` ### File-Level Changes | Change | Details | Files | | ------ | ------- | ----- | | Implemented signup form component with validation |
  • Added form fields for email, password, name, gender, and phone number
  • Implemented form validation using React Hook Form and Zod
  • Added email duplication check functionality
  • Created password confirmation validation
  • Added terms agreement checkboxes with 'select all' functionality
| `src/components/forms/SignupForm.tsx` | | Created validation schemas and types for signup |
  • Defined Zod validation schema for signup form
  • Created types for form data and API request
  • Added validation patterns for password and phone number
  • Implemented form data transformation function for API requests
| `src/utils/signupSchema.ts`
`src/types/signup.ts`
`src/constants/validation.ts` | | Added terms and conditions dialog component |
  • Created reusable dialog component for displaying terms
  • Added scroll area for long content
  • Implemented terms content constants
| `src/components/forms/TermsDialog.tsx`
`src/constants/terms.ts` | | Added UI components for form elements |
  • Created form wrapper components with validation support
  • Added label component with styling variants
  • Updated dialog component for terms display
| `src/components/ui/form.tsx`
`src/components/ui/label.tsx`
`src/components/ui/dialog.tsx` | ### Possibly linked issues - **#1**: The PR implements the signup page as described in the issue. ---
Tips and commands #### Interacting with Sourcery - **Trigger a new review:** Comment `@sourcery-ai review` on the pull request. - **Continue discussions:** Reply directly to Sourcery's review comments. - **Generate a GitHub issue from a review comment:** Ask Sourcery to create an issue from a review comment by replying to it. - **Generate a pull request title:** Write `@sourcery-ai` anywhere in the pull request title to generate a title at any time. - **Generate a pull request summary:** Write `@sourcery-ai summary` anywhere in the pull request body to generate a PR summary at any time. You can also use this command to specify where the summary should be inserted. #### Customizing Your Experience Access your [dashboard](https://app.sourcery.ai) to: - Enable or disable review features such as the Sourcery-generated pull request summary, the reviewer's guide, and others. - Change the review language. - Add, remove or edit custom review instructions. - Adjust other review settings. #### Getting Help - [Contact our support team](mailto:support@sourcery.ai) for questions or feedback. - Visit our [documentation](https://docs.sourcery.ai) for detailed guides and information. - Keep in touch with the Sourcery team by following us on [X/Twitter](https://x.com/SourceryAI), [LinkedIn](https://www.linkedin.com/company/sourcery-ai/) or [GitHub](https://github.com/sourcery-ai).
github-actions[bot] commented 2 weeks ago

Storybook 확인 바로가기

github-actions[bot] commented 2 weeks ago

Visit the preview URL for this PR (updated for commit 1f2141a):

https://aipark-four-t--127-9t4ixdi1.web.app

(expires Sat, 23 Nov 2024 04:40:18 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 0a4b3ef6ecc2c695a6a0d6ade46651e032870a9f

github-actions[bot] commented 2 weeks ago

SonarQube 분석 결과 바로가기

❌ Quality Gate : ERROR

🛑 코드 품질 이슈 : 21

코드 품질향상을 위한 권장사항이며, 수정하지 않아도 무방합니다. 하지만 더 멋진 코드가 될 수 있습니다. 😉

sjgaru-dev commented 2 weeks ago

image 머리 위에 줄이 있어서 모니터 줄 나갔나하고 깜짝 놀랐네요. 근데 와이어프레임으로 봤을 때는 신경 못 썼는데, 사진이 다 외쿡인이네요. ㅋㅋ