피드백 반영 및 task, 팀생성 기능 구현 - #15
Open
coding-quokka101 wants to merge 3 commits into
Open
Conversation
feat: Integrate JWT authentication with team-based task management 🔧 Changes tasks.ts, task-comments.ts: apiRequest 사용으로 JWT 토큰 자동 전송 및 갱신 TasksPage.tsx: JWT에서 teamId 추출하여 팀별 Task 분리 표시 TaskComments.tsx (신규): 작성자 프로필 아바타 및 이름 표시 TaskDetailModal.tsx, TasksPage.tsx: 작성자 본인만 Edit/Delete 버튼 표시 (currentUserId === creatorId) 팀 미선택 시 안내 화면 추가 댓글 수정 모드 UI 구현 API 파일 분리 (tasks.ts, task-comments.ts) Task 컴포넌트 분리 (TaskComments 독립) Dependencies: 백엔드 PR 1, 2 머지 후 배포 필요 Labels: frontend enhancement ui-improvement
aaxx98
reviewed
Jan 2, 2026
| } | ||
|
|
||
| // 사용자가 속한 팀 목록 조회 | ||
| export async function getUserTeams(): Promise<UserTeamsResponse> { |
Contributor
There was a problem hiding this comment.
/lib/api/auth.ts에 선언되어있습니다.
export const getTeams = async (): Promise<AuthTeamList> =>
apiRequest<AuthTeamList>("/api/user/team");response error 처리는 throw new Error 등으로 처리하지 말고 공통 api 처리 wrapper인 apiRequest로 감싸서 선언하면 Response에 에러메세지가 toast UI에 표시됩니다.
## 작업 내용 ### 1. 팀 생성 기능 구현 * 팀 생성 API 구현 (`POST /api/team`) * `Team`, `TeamResponse` 기반 팀 생성 로직 추가 * `TeamController`, `TeamService`, `TeamServiceImpl` 구성 * 팀 목록 조회 API와 연동되는 기본 팀 데이터 저장 구조 완성 ### 2. Task 수정 UX 개선 * Task 수정 모드(`isEditing === true`)일 때 **댓글 영역 숨김 처리** * Task 상세 조회 시 읽기 모드에서만 댓글 표시되도록 UI 분기 ### 3. Task 댓글 기능 개선 * 댓글 작성자 프로필 표시 (이니셜 아바타) * 댓글 작성자 이름을 **팀 멤버 정보(member)** 기반으로 표시 * 로그인 사용자(memberId)와 댓글 작성자 비교하여 * 본인 댓글에만 수정 / 삭제 버튼 노출 ### 4. 로그인 연동 (JWT 기반) Task 페이지를 JWT 기반 인증 방식으로 변경하여 게시판과 동일한 패턴으로 통일했습니다. * JWT 토큰 기반 로그인 사용자 정보 조회 (`getMe`) * userId가 아닌 **memberId 기준**으로 권한 및 작성자 판단 * Task, Comment, Creator 판단 로직을 팀 멤버 기준으로 통일 ### 5. 팀 멤버 기반 권한 관리 구조 정비 * Task 생성자 / 댓글 작성자 판단 시 `memberId` 사용 * 팀 멤버 목록(`members`)을 기준으로: * 댓글 작성자 이름 매핑 * 담당자(assignee) 표시 * 추후 팀 권한 관리 확장을 고려한 구조 정리 --- ## 상세 내용 ### 팀 생성 * 팀 이름, 설명을 받아 `Team` 엔티티 생성 및 저장 * 생성 시 `uuid`, `createdAt` 자동 세팅 * 팀 생성 완료 후 `TeamResponse` 반환 ### Task / Comment UI & 권한 * Task 수정 중에는 댓글이 노출되지 않도록 처리하여 UX 개선 * 댓글 영역에서: * 작성자 프로필 이니셜 표시 * 작성자 이름을 팀 멤버 기준으로 출력 * 로그인 사용자(memberId)와 댓글 creatorId 비교하여 * 본인 댓글만 수정 / 삭제 가능 --- ## 테스트 ### 팀 관련 * `POST /api/team` 요청으로 팀 정상 생성 확인 * 팀 생성 후 팀 목록 조회 API에서 생성된 팀 확인 ### Task / Comment * Task 수정 시 댓글 영역 미노출 확인 * Task 조회 모드에서 댓글 정상 표시 확인 * 댓글 작성 / 수정 / 삭제 정상 동작 확인 * 로그인 사용자에 따라 댓글 수정·삭제 버튼 노출 여부 확인 --- ## 참고 * 추후 팀 생성 시 **팀 생성자 멤버 초대** 추가 구현 해야함 --- ## Frontend tasks/page.tsx teamId, currentUserId state 제거 teamUuid 기반으로 팀 선택 여부만 체크 getTeamMembers API를 @/lib/api/member에서 import하여 페이징 처리 Modal에서 teamId prop 제거 TaskCreateModal.tsx teamId prop 제거 getTeamMembers import 경로 변경 (teams.ts → member.ts) 페이징 응답 처리 (membersData.content) TaskDetailModal.tsx getTeamMembers import 경로 변경 (teams.ts → member.ts) 페이징 응답 처리 및 필드명 변경 (memberId → id) teams.ts 중복된 getTeamMembers 함수 제거 (member.ts에 이미 존재) Member 인터페이스 제거
aaxx98
approved these changes
Jan 7, 2026
- isComposing 체크를 추가
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat: Integrate JWT authentication with team-based task management
🔧 Changes
tasks.ts, task-comments.ts: apiRequest 사용으로 JWT 토큰 자동 전송 및 갱신 TasksPage.tsx: JWT에서 teamId 추출하여 팀별 Task 분리 표시
TaskComments.tsx (신규): 작성자 프로필 아바타 및 이름 표시
TaskDetailModal.tsx, TasksPage.tsx: 작성자 본인만 Edit/Delete 버튼 표시 (currentUserId === creatorId) 팀 미선택 시 안내 화면 추가
댓글 수정 모드 UI 구현
API 파일 분리 (tasks.ts, task-comments.ts)
Task 컴포넌트 분리 (TaskComments 독립)
Dependencies: 백엔드 PR 1, 2 머지 후 배포 필요
Labels: frontend enhancement ui-improvement