Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: #246 프로젝트 수정 기능 구현 #250

Merged
merged 2 commits into from
Oct 26, 2024

Conversation

ice-bear98
Copy link
Contributor

@ice-bear98 ice-bear98 commented Oct 26, 2024

PR Type

What kind of change does this PR introduce?

  • [Feat] 새로운 기능을 추가했어요.

Related Issues

#246

What does this PR do?

  • 프로젝트 수정 API Axios 추가
  • 프로젝트 수정 Query 작성
  • 프로젝트 수정 Handler 작성

Other information

프로젝트 수정
제목 없는 동영상 - Clipchamp로 제작

@ice-bear98 ice-bear98 added the 🌟 Feature 새로운 기능 개발했어요 label Oct 26, 2024
@ice-bear98 ice-bear98 self-assigned this Oct 26, 2024
Copy link

coderabbitai bot commented Oct 26, 2024

Walkthrough

이번 변경 사항은 UpdateModalProject 컴포넌트와 관련된 여러 수정 사항을 포함합니다. useUpdateProject 훅이 추가되어 프로젝트 업데이트 기능이 향상되었으며, handleFormSubmit 함수가 새로운 뮤테이션을 활용하도록 수정되었습니다. 또한, 프로젝트 세부 정보를 업데이트하는 새로운 API 엔드포인트가 추가되었고, 관련 서비스와 훅이 업데이트되었습니다. 이로 인해 프로젝트 관리의 흐름이 개선되었습니다.

Changes

파일 경로 변경 요약
src/components/modal/project/UpdateModalProject.tsx useUpdateProject 훅 추가, handleFormSubmit 함수의 매개변수를 formData로 변경.
src/hooks/query/useProjectQuery.ts useUpdateProject 함수 추가, updateProjectInfo 함수에 대한 import 추가, ProjectInfoForm 타입 추가.
src/mocks/services/projectServiceHandler.ts 프로젝트 세부 정보를 업데이트하는 새로운 PATCH 요청 핸들러 추가.
src/services/projectService.ts updateProjectInfo 비동기 함수 추가, ProjectInfoForm 타입 추가.

Possibly related PRs

Suggested labels

💉 Fix

Suggested reviewers

  • Seok93
  • Yoonyesol

🐰 변화의 바람이 불어와
프로젝트 업데이트가 쉬워졌네,
훅과 서비스가 함께 손잡고,
새로운 길을 열어주네!
모두가 함께하는 이 순간,
더 나은 경험을 위해 뛰어가네! 🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Outside diff range and nitpick comments (1)
src/components/modal/project/UpdateModalProject.tsx (1)

Line range hint 1-150: 에러 처리 및 로딩 상태 관리 개선 필요

프로젝트 수정 중 발생할 수 있는 다양한 에러 상황에 대한 처리가 미흡합니다.

다음 사항들을 고려해보시기 바랍니다:

  1. 수정 중 로딩 상태 표시
  2. 네트워크 오류, 서버 오류 등 다양한 에러 상황에 대한 사용자 피드백
  3. 수정 성공/실패 시 토스트 메시지 표시
  4. 폼 데이터 변경 사항이 있을 때 모달 닫기 전 확인 절차 추가
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between f76615f and a0ec4b4.

📒 Files selected for processing (4)
  • src/components/modal/project/UpdateModalProject.tsx (3 hunks)
  • src/hooks/query/useProjectQuery.ts (2 hunks)
  • src/mocks/services/projectServiceHandler.ts (1 hunks)
  • src/services/projectService.ts (2 hunks)
🧰 Additional context used
📓 Learnings (1)
src/hooks/query/useProjectQuery.ts (1)
Learnt from: ice-bear98
PR: GU-99/grow-up-fe#240
File: src/hooks/query/useProjectQuery.ts:0-0
Timestamp: 2024-10-24T02:56:21.185Z
Learning: 프로젝트 'grow-up-fe'에서는 `useMutation`을 사용한 mutation 구현이 여러 파일에서 일관되게 사용되고 있으며, 코드베이스의 일관성을 유지하기 위해 기존 구현 방식을 수정하지 않습니다.
🔇 Additional comments (8)
src/services/projectService.ts (2)

5-5: 타입 임포트가 적절히 추가되었습니다!

ProjectInfoForm 타입이 관련 타입들과 함께 올바르게 임포트되었습니다.


93-103: 문서화가 잘 되어있습니다!

JSDoc 문서화가 상세하고 명확하며, 각 매개변수에 대한 설명이 충분합니다.

src/hooks/query/useProjectQuery.ts (2)

3-9: 새로운 import 구문이 적절히 추가되었습니다.

프로젝트 수정 기능 구현에 필요한 updateProjectInfo 서비스와 ProjectInfoForm 타입이 기존 코드 스타일을 유지하며 잘 추가되었습니다.

Also applies to: 14-14


109-128: 프로젝트 수정 기능이 기존 패턴을 잘 따르고 있습니다.

구현이 다음과 같은 점에서 우수합니다:

  • 기존 mutation 구현 패턴을 일관되게 유지
  • 적절한 에러 처리와 성공 알림
  • 캐시 무효화 로직이 올바르게 구현

다만, 한 가지 확인이 필요합니다:

프로젝트 수정 시 사용되는 ProjectInfoForm 타입이 올바르게 정의되어 있는지 확인이 필요합니다:

✅ Verification successful

Let's search for any mentions or definitions of ProjectInfoForm in the codebase to verify its proper implementation.


ProjectInfoForm 타입이 올바르게 정의되어 있음을 확인했습니다.

ProjectInfoForm 타입이 다음과 같이 적절하게 구현되어 있습니다:

  • 프로젝트 이름 (projectName)
  • 프로젝트 내용 (content)
  • 시작일 (startDate)
  • 종료일 (endDate)

이는 프로젝트 수정 기능에 필요한 모든 필드를 포함하고 있으며, Project 타입과도 일관성 있게 정의되어 있습니다.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# ProjectInfoForm 타입 정의 확인
rg -t typescript "type ProjectInfoForm" 

Length of output: 76


Script:

#!/bin/bash
# Search for ProjectInfoForm type definition with ripgrep
rg "ProjectInfoForm"

# Also try to find interface definition
rg "interface ProjectInfoForm"

Length of output: 702


Script:

#!/bin/bash
# Check the definition of ProjectInfoForm type in ProjectType.tsx
cat src/types/ProjectType.tsx

Length of output: 709

src/components/modal/project/UpdateModalProject.tsx (3)

17-22: useUpdateProject 훅 추가 확인

프로젝트 수정 기능을 위한 훅이 적절히 추가되었습니다.


47-47: 프로젝트 업데이트 뮤테이션 구현 확인

teamId를 Number 타입으로 변환하여 안전하게 처리하고 있습니다.


Line range hint 134-150: 팀원 관리 기능 구현 필요

팀원 추가, 역할 변경, 삭제 핸들러가 비어있습니다.

팀원 관리 기능 구현이 필요하시다면, 관련 코드 작성을 도와드릴 수 있습니다. 이슈를 생성해드릴까요?

src/mocks/services/projectServiceHandler.ts (1)

219-226: API 엔드포인트가 RESTful 규칙을 잘 준수하고 있습니다! 👍

프로젝트 수정을 위한 PATCH 메서드와 경로 구조가 적절하게 구현되어 있으며, 타입 안전성도 잘 유지되고 있습니다.

src/services/projectService.ts Show resolved Hide resolved
src/components/modal/project/UpdateModalProject.tsx Outdated Show resolved Hide resolved
src/mocks/services/projectServiceHandler.ts Show resolved Hide resolved
@GU-99 GU-99 deleted a comment from coderabbitai bot Oct 26, 2024
Copy link
Contributor

@Seok93 Seok93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

작업하시느라 고생하셨습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🌟 Feature 새로운 기능 개발했어요
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants