FC-DEV-FinalProject / final-fe-team4

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

[feat] 회원정보 수정 #250

Closed sjgaru-dev closed 21 hours ago

sjgaru-dev commented 21 hours ago

로그인 유지가 안 돼서 변경이 안 되는데, 어디가 문제인지 몰라서 시간 안 끌고 그냥 일단 pr 올립니다.

Sourcery에 의한 요약

향상된 폼 처리 및 오류 관리를 통해 사용자 프로필 및 비밀번호 업데이트 기능을 구현합니다.

새로운 기능:

개선 사항:

Original summary in English ## Summary by Sourcery Implement user profile and password update features with improved form handling and error management. New Features: - Introduce functionality to update user profile information, including name and phone number, with server-side integration. - Add password change functionality with client-side validation and server-side integration. Enhancements: - Refactor the EditProfileForm component to separate profile and password forms, improving code organization and readability. - Enhance error handling in profile and password update processes to provide user-friendly error messages.
sourcery-ai[bot] commented 21 hours ago

리뷰어 가이드 by Sourcery

이 PR은 프로필 정보 업데이트 및 비밀번호 변경을 포함한 사용자 프로필 관리 기능을 구현합니다. 구현에는 React Hook Form을 사용한 폼 처리, API 통합, 오류 처리, 모달 및 오류 메시지를 통한 UI 피드백이 포함됩니다.

프로필 업데이트 프로세스에 대한 시퀀스 다이어그램

sequenceDiagram
    actor User
    participant EditProfileForm
    participant ProfileAPI
    participant AuthStore

    User->>EditProfileForm: 프로필 폼 제출
    EditProfileForm->>ProfileAPI: changeProfile(formattedData)
    ProfileAPI-->>EditProfileForm: 업데이트된 사용자 데이터로 응답
    EditProfileForm->>AuthStore: setUser(updatedUserData)
    EditProfileForm->>User: 성공 모달 표시

비밀번호 변경 프로세스에 대한 시퀀스 다이어그램

sequenceDiagram
    actor User
    participant EditProfileForm
    participant ProfileAPI

    User->>EditProfileForm: 비밀번호 폼 제출
    EditProfileForm->>ProfileAPI: changePassword(hashedPasswords)
    ProfileAPI-->>EditProfileForm: 응답
    EditProfileForm->>User: 성공 모달 표시

EditProfileForm 컴포넌트에 대한 클래스 다이어그램

classDiagram
    class EditProfileForm {
        - activeTab: string
        - isModalOpen: boolean
        - errorMessage: string
        + profileForm: useForm<ProfileFormData>
        + passwordForm: useForm<PasswordFormData>
        + onProfileSubmit(data: ProfileFormData)
        + onPasswordSubmit(data: PasswordFormData)
        + handleConfirmSubmit()
    }

    class ProfileFormData {
        + email: string
        + name: string
        + phoneNumber: string
    }

    class PasswordFormData {
        + currentPassword: string
        + newPassword: string
        + confirmPassword: string
    }

    EditProfileForm --> ProfileFormData
    EditProfileForm --> PasswordFormData

파일 수준 변경 사항

변경 사항 세부 사항 파일
폼 처리 및 API 통합을 통한 프로필 업데이트 기능 구현
  • 오류 처리를 포함한 프로필 폼 제출 핸들러 추가
  • 프로필 업데이트 API 엔드포인트와 통합
  • 전화번호 포맷팅 유틸리티 추가
  • 성공적인 프로필 변경 후 사용자 상태 업데이트 구현
src/components/custom/forms/EditProfileForm.tsx
src/api/profileAPI.ts
src/utils/phoneNumber.ts
유효성 검사를 통한 비밀번호 변경 기능 추가
  • 현재 및 새 비밀번호 필드를 포함한 비밀번호 폼 구현
  • 비밀번호 유효성 검사 및 해싱 추가
  • 비밀번호 변경 API 엔드포인트와 통합
  • 오류 처리 및 사용자 피드백 추가
src/components/custom/forms/EditProfileForm.tsx
src/api/profileAPI.ts
계정 관리 폼 및 사용자 인터페이스 개선
  • ID 및 비밀번호 복구를 위한 다양한 시나리오를 처리하도록 FindAccountForm 업데이트
  • SMS 인증 흐름 간소화
  • 폼 필드의 조건부 렌더링 추가
  • ID를 선택적으로 만들기 위해 사용자 저장소 인터페이스 업데이트
src/components/custom/forms/FindAccountForm.tsx
src/stores/auth.store.ts

관련된 문제일 수 있음


팁 및 명령어 #### Sourcery와 상호작용하기 - **새 리뷰 트리거:** PR에 `@sourcery-ai review`라고 댓글을 남깁니다. - **토론 계속하기:** Sourcery의 리뷰 댓글에 직접 답장합니다. - **리뷰 댓글에서 GitHub 이슈 생성:** 리뷰 댓글에서 Sourcery에게 이슈 생성을 요청합니다. - **PR 제목 생성:** PR 제목 어디에나 `@sourcery-ai`를 작성하여 언제든지 제목을 생성합니다. - **PR 요약 생성:** PR 본문 어디에나 `@sourcery-ai summary`를 작성하여 언제든지 PR 요약을 생성합니다. 이 명령어를 사용하여 요약을 삽입할 위치를 지정할 수도 있습니다. #### 경험 맞춤화 [대시보드](https://app.sourcery.ai)에 액세스하여: - Sourcery가 생성한 PR 요약, 리뷰어 가이드 등과 같은 리뷰 기능을 활성화하거나 비활성화합니다. - 리뷰 언어를 변경합니다. - 사용자 정의 리뷰 지침을 추가, 제거 또는 편집합니다. - 기타 리뷰 설정을 조정합니다. #### 도움 받기 - 질문이나 피드백이 있는 경우 [지원 팀에 문의](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 user profile management functionality, including profile information updates and password changes. The implementation includes form handling with React Hook Form, API integration, error handling, and UI feedback through modals and error messages. #### Sequence diagram for profile update process ```mermaid sequenceDiagram actor User participant EditProfileForm participant ProfileAPI participant AuthStore User->>EditProfileForm: Submit profile form EditProfileForm->>ProfileAPI: changeProfile(formattedData) ProfileAPI-->>EditProfileForm: Response with updated user data EditProfileForm->>AuthStore: setUser(updatedUserData) EditProfileForm->>User: Show success modal ``` #### Sequence diagram for password change process ```mermaid sequenceDiagram actor User participant EditProfileForm participant ProfileAPI User->>EditProfileForm: Submit password form EditProfileForm->>ProfileAPI: changePassword(hashedPasswords) ProfileAPI-->>EditProfileForm: Response EditProfileForm->>User: Show success modal ``` #### Class diagram for EditProfileForm component ```mermaid classDiagram class EditProfileForm { - activeTab: string - isModalOpen: boolean - errorMessage: string + profileForm: useForm + passwordForm: useForm + onProfileSubmit(data: ProfileFormData) + onPasswordSubmit(data: PasswordFormData) + handleConfirmSubmit() } class ProfileFormData { + email: string + name: string + phoneNumber: string } class PasswordFormData { + currentPassword: string + newPassword: string + confirmPassword: string } EditProfileForm --> ProfileFormData EditProfileForm --> PasswordFormData ``` ### File-Level Changes | Change | Details | Files | | ------ | ------- | ----- | | Implemented profile update functionality with form handling and API integration |
  • Added profile form submission handler with error handling
  • Integrated with profile update API endpoint
  • Added phone number formatting utilities
  • Implemented user state updates after successful profile changes
| `src/components/custom/forms/EditProfileForm.tsx`
`src/api/profileAPI.ts`
`src/utils/phoneNumber.ts` | | Added password change functionality with validation |
  • Implemented password form with current and new password fields
  • Added password validation and hashing
  • Integrated with password change API endpoint
  • Added error handling and user feedback
| `src/components/custom/forms/EditProfileForm.tsx`
`src/api/profileAPI.ts` | | Enhanced account management forms and user interface |
  • Updated FindAccountForm to handle different scenarios for ID and password recovery
  • Simplified SMS verification flow
  • Added conditional rendering of form fields
  • Updated user store interface to make ID optional
| `src/components/custom/forms/FindAccountForm.tsx`
`src/stores/auth.store.ts` | ### Possibly linked issues - **#1**: The PR implements the profile editing feature mentioned 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 21 hours ago

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

https://aipark-four-t--250-rwgq750a.web.app

(expires Fri, 06 Dec 2024 06:41:16 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 0a4b3ef6ecc2c695a6a0d6ade46651e032870a9f