Skip to content

[feat] preMember 목록 분리 및 삭제 기능 추가#115

Merged
ff1451 merged 4 commits intodevelopfrom
111-feat-pre-member-목록-분리-및-api-적용
Feb 17, 2026

Hidden character warning

The head ref may contain hidden characters: "111-feat-pre-member-\ubaa9\ub85d-\ubd84\ub9ac-\ubc0f-api-\uc801\uc6a9"
Merged

[feat] preMember 목록 분리 및 삭제 기능 추가#115
ff1451 merged 4 commits intodevelopfrom
111-feat-pre-member-목록-분리-및-api-적용

Conversation

@ff1451
Copy link
Copy Markdown
Collaborator

@ff1451 ff1451 commented Feb 17, 2026

Summary by CodeRabbit

  • New Features
    • Manager: view pending (pre-)members in a dedicated list.
    • Manage pre-members via an action dialog and a delete confirmation modal.
    • Delete pending members with success feedback and automatic list refresh.
    • Background fetch/delete hooks to keep the Manager dashboard up to date.

@ff1451 ff1451 self-assigned this Feb 17, 2026
@ff1451 ff1451 linked an issue Feb 17, 2026 that may be closed by this pull request
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 17, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Adds PreMember-related types, two club API endpoints (getPreMembers, deletePreMember), React Query hooks to fetch/delete pre-members with cache invalidation, and UI support in the manager page (pre-member list, action modal, delete-confirm modal, deletion flow with toast).

Changes

Cohort / File(s) Summary
API Entities
src/apis/club/entity.ts
Added PreMember, PreMembersList, and PreMemberDeleteRequest interfaces.
Club API
src/apis/club/index.ts
Added getPreMembers(clubId): PreMembersList and deletePreMember(clubId, preMemberId): void endpoints (requiresAuth).
Manager Hooks
src/pages/Manager/hooks/useManagerQuery.ts
Added useGetPreMemberList(clubId) and useDeletePreMember(clubId, options?); added query key preMembersList and invalidate it on relevant mutations.
Manager UI / Page
src/pages/Manager/ManagedMemberList/index.tsx
Integrated pre-member list rendering, selection state, action modal and delete-confirm modal, wired delete mutation with close/clear/toast behavior; minor input digit validation.

Sequence Diagram

sequenceDiagram
    participant User as User
    participant UI as ManagedMemberList
    participant Hook as useDeletePreMember
    participant API as Club API
    participant Cache as ReactQuery Cache

    User->>UI: Click "Manage" on a pre-member → choose "Delete"
    UI->>User: Show delete confirmation modal
    User->>UI: Confirm deletion
    UI->>Hook: mutateDeletePreMember(clubId, preMemberId)
    Hook->>API: DELETE /clubs/{clubId}/pre-members/{preMemberId}
    API-->>Hook: 200 OK
    Hook->>Cache: invalidateQuery("preMembersList", clubId)
    Cache-->>Hook: refetch pre-members
    Hook-->>UI: mutation success
    UI->>UI: Close modals, clear selection, show toast
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

Possibly related PRs

Poem

🐰 I nibble at types and hop through hooks,
A pre-member list tucked in tidy books.
A modal, a click, then a soft goodbye,
Cache refreshed beneath a springtime sky.
Hooray — carrot-coded joy, up high!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title in Korean describes adding pre-member list separation and deletion functionality, which directly matches the main changes: new PreMember entities, API functions (getPreMembers, deletePreMember), hooks, and UI implementation for managing pre-members.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 111-feat-pre-member-목록-분리-및-api-적용

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@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.

🧹 Nitpick comments (1)
src/apis/club/entity.ts (1)

270-285: Use PascalCase for exported interfaces.

These new exported types are lower camelcase while the rest of the file uses PascalCase. Renaming keeps the domain model consistent and avoids lint/style drift. Please update usages in the API layer and UI imports accordingly.

🔁 Suggested rename (update usages accordingly)
-export interface preMember {
+export interface PreMember {
   preMemberId: number;
   studentNumber: string;
   name: string;
   clubPosition: 'MANAGER' | 'MEMBER';
 }
 
-export interface preMembersList {
-  preMembers: preMember[];
+export interface PreMembersList {
+  preMembers: PreMember[];
 }
 
-export interface preMemberDeleteRequest {
+export interface PreMemberDeleteRequest {
   clubId: number;
   preMemberId: number;
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/apis/club/entity.ts` around lines 270 - 285, The exported interfaces
preMember, preMembersList, and preMemberDeleteRequest use lower camelcase which
is inconsistent with the PascalCase naming convention used elsewhere. Rename
these interfaces to PreMember, PreMembersList, and PreMemberDeleteRequest
respectively, and ensure all usages in the API layer and UI imports are updated
to match these new names for consistency across the domain model.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@src/apis/club/entity.ts`:
- Around line 270-285: The exported interfaces preMember, preMembersList, and
preMemberDeleteRequest use lower camelcase which is inconsistent with the
PascalCase naming convention used elsewhere. Rename these interfaces to
PreMember, PreMembersList, and PreMemberDeleteRequest respectively, and ensure
all usages in the API layer and UI imports are updated to match these new names
for consistency across the domain model.

@ff1451 ff1451 merged commit 1b3a253 into develop Feb 17, 2026
1 check passed
ff1451 added a commit that referenced this pull request Feb 17, 2026
* feat: preMember 목록 분리 및 삭제 기능 추가

* chore: Pascal case

* chore: 변경된 변수명 반영

* feat: 학번 숫자 필터링 추가
@ff1451 ff1451 mentioned this pull request Feb 20, 2026
ff1451 added a commit that referenced this pull request Feb 20, 2026
* feat: 알림설정 구현 (#108)

* chore: min-w 추가

* [chore] 코드래빗 설정 파일 추가 (#110)

* chore: 코드래빗 설정 파일 추가

* chore: 불필요한 tools 설정 제거

* [feat] preMember 목록 분리 및 삭제 기능 추가 (#115)

* feat: preMember 목록 분리 및 삭제 기능 추가

* chore: Pascal case

* chore: 변경된 변수명 반영

* feat: 학번 숫자 필터링 추가

* [feat] 채팅 목차 알림 상태 추가 (#113)

* chore: svg 추가

* feat: 채팅목록 알림 끄기 설정시 UI 추가

* feat: 목차 열릴시 애니메이션 추가

* [feat] 달력 카테고리 분류 추가 (#118)

* feat: 카테고리 추가

* chore: 불필요한 코드 삭제

* [refactor] 관리자 페이지 및 마이페이지 UI 수정 및 리팩토링 (#117)

* feat: 정보 카드에서 정보 페이지로 이동하도록 기능 추가

* feat: 토스트 전역상태 추가

* refactor: query 훅 분리 및 onSuccess 콜백 옵션 제거

* refactor: query 훅 사용처 수정

* refactor: 사용처 수정 2

* fix: 채팅창 스크롤 초기화 문제 수정 및 줄바꿈 기준 변경

* feat: 토글 스위치 구현

* refactor: 모집 공고 관련 목록 페이지 디자인 수정

* feat: 컴포넌트 구현 및 icon 추가

* refactor: z-index 값 수정

* refactor: API 필드 변경 사항 반영

* refactor: 모집 공고 페이지 디자인 수정 및 라우트 백 수정

* refactor: 학교 목록에 없을 시 문구 디자인 수정

* fix: lint error

* fix: 타입 변경

* feat: 모집 관련 페이지 API 추가사항 반영

* refactor: 토스트 타이머 클린업 추라

* refactor: 전역토스트 사용 변경

* refactor: 관리자 클럽 조회 훅 호출 범위 줄이기

* feat: onError handler add

* chore: add button type and remove fragment

* [feat] 문의하기 버튼 로직 추가 (#120)

* feat: API 추가 및 연결

* chore: placeholder 제거

* [fix] 채팅 스크롤 미갱신 버그 및 멤버 직위 렌더링 수정 (#122)

* fix: 채팅 스크롤 미작동 수정

* fix: 한글 출력으로 수정

* feat: 첫 글자 보여주도록 수정 (#124)

* hotfix: 동아리 소개 줄바꿈 적용 및 한 줄 소개 글자수 제한 상향

* chore: 리뷰 반영

* fix: disabled 조건 변경

* 126 fix 배포 전 qa 사항 반영 (#127)

* fix: 가입 버튼 문구 수정

* fix: 검색창 placeholder 수정

* fix: 불필요해진 UI 비활성화

* fix: 모집공고 없을 때 빈 화면 처리

* fix: 무의미한 회비페이지 수정

* feat: 토글 시 자동 페이지 이동 추가

* fix: 페이지 이동 조건 수정

---------

Co-authored-by: 김혜준 <114041848+hyejun0228@users.noreply.github.com>
Co-authored-by: hyejun <hyejunkkim228@gmail.com>
ff1451 added a commit that referenced this pull request Mar 6, 2026
* develop → main 배포 (#125)

* feat: 알림설정 구현 (#108)

* chore: min-w 추가

* [chore] 코드래빗 설정 파일 추가 (#110)

* chore: 코드래빗 설정 파일 추가

* chore: 불필요한 tools 설정 제거

* [feat] preMember 목록 분리 및 삭제 기능 추가 (#115)

* feat: preMember 목록 분리 및 삭제 기능 추가

* chore: Pascal case

* chore: 변경된 변수명 반영

* feat: 학번 숫자 필터링 추가

* [feat] 채팅 목차 알림 상태 추가 (#113)

* chore: svg 추가

* feat: 채팅목록 알림 끄기 설정시 UI 추가

* feat: 목차 열릴시 애니메이션 추가

* [feat] 달력 카테고리 분류 추가 (#118)

* feat: 카테고리 추가

* chore: 불필요한 코드 삭제

* [refactor] 관리자 페이지 및 마이페이지 UI 수정 및 리팩토링 (#117)

* feat: 정보 카드에서 정보 페이지로 이동하도록 기능 추가

* feat: 토스트 전역상태 추가

* refactor: query 훅 분리 및 onSuccess 콜백 옵션 제거

* refactor: query 훅 사용처 수정

* refactor: 사용처 수정 2

* fix: 채팅창 스크롤 초기화 문제 수정 및 줄바꿈 기준 변경

* feat: 토글 스위치 구현

* refactor: 모집 공고 관련 목록 페이지 디자인 수정

* feat: 컴포넌트 구현 및 icon 추가

* refactor: z-index 값 수정

* refactor: API 필드 변경 사항 반영

* refactor: 모집 공고 페이지 디자인 수정 및 라우트 백 수정

* refactor: 학교 목록에 없을 시 문구 디자인 수정

* fix: lint error

* fix: 타입 변경

* feat: 모집 관련 페이지 API 추가사항 반영

* refactor: 토스트 타이머 클린업 추라

* refactor: 전역토스트 사용 변경

* refactor: 관리자 클럽 조회 훅 호출 범위 줄이기

* feat: onError handler add

* chore: add button type and remove fragment

* [feat] 문의하기 버튼 로직 추가 (#120)

* feat: API 추가 및 연결

* chore: placeholder 제거

* [fix] 채팅 스크롤 미갱신 버그 및 멤버 직위 렌더링 수정 (#122)

* fix: 채팅 스크롤 미작동 수정

* fix: 한글 출력으로 수정

* feat: 첫 글자 보여주도록 수정 (#124)

* hotfix: 동아리 소개 줄바꿈 적용 및 한 줄 소개 글자수 제한 상향

* chore: 리뷰 반영

* fix: disabled 조건 변경

* 126 fix 배포 전 qa 사항 반영 (#127)

* fix: 가입 버튼 문구 수정

* fix: 검색창 placeholder 수정

* fix: 불필요해진 UI 비활성화

* fix: 모집공고 없을 때 빈 화면 처리

* fix: 무의미한 회비페이지 수정

* feat: 토글 시 자동 페이지 이동 추가

* fix: 페이지 이동 조건 수정

---------

Co-authored-by: 김혜준 <114041848+hyejun0228@users.noreply.github.com>
Co-authored-by: hyejun <hyejunkkim228@gmail.com>

* develop -> main 배포 (#132)

* chore: 타입 변경 반영

* [feat] 모집 공고에 시간 추가 및 지원서 정렬 추가 (#131)

* feat: 모집 공고에 시작, 종료 시간 추가

* feat: 지원자 목록 정렬 추가 및 시간 표시

* feat: 채팅, 모집 공고 링크 파싱 기능 추가

* feat: 인스타그램 파싱 추가

* fix: prettier error

* refactor: 유틸 분리 및 타입 변경

* chore: 타입 변경 반영

* chore: 동일 스타일 통합 및 entity 확장 사용

* chore:ios 토큰 테스트를 위한 로직 추가

* Revert "chore:ios 토큰 테스트를 위한 로직 추가"

This reverts commit 98570fc.

* hotfix: 모집 공고 textarea 길이 자동 재계산 추가

* feat: 페이지네이션 추가

* feat: 수정

* feat: 페이지네이션 수정

* feat: 디자인 수정

* feat: 로직 수정

* fix: key 수정

* develop-> main (#135)

* chore: 타입 변경 반영

* [feat] 모집 공고에 시간 추가 및 지원서 정렬 추가 (#131)

* feat: 모집 공고에 시작, 종료 시간 추가

* feat: 지원자 목록 정렬 추가 및 시간 표시

* feat: 채팅, 모집 공고 링크 파싱 기능 추가

* feat: 인스타그램 파싱 추가

* fix: prettier error

* refactor: 유틸 분리 및 타입 변경

* chore: 타입 변경 반영

* chore: 동일 스타일 통합 및 entity 확장 사용

* chore:ios 토큰 테스트를 위한 로직 추가

* Revert "chore:ios 토큰 테스트를 위한 로직 추가"

This reverts commit 98570fc.

* hotfix: 모집 공고 textarea 길이 자동 재계산 추가

* Reapply "chore:ios 토큰 테스트를 위한 로직 추가"

This reverts commit 3a56f4a.

* chore: ios토큰

* feat: 가이드 페이지 이미지 변경

* chore: 푸시알림 로직 임시 변경

* refactor: 푸시 알림 토큰 로직 브릿지 방식으로 수정 (#134)

* refactor: 푸시 알림 토큰 로직 브릿지 방식으로 수정

* fix: try catch 적용

* feat: 페이지네이션 추가

* feat: 수정

* feat: 페이지네이션 수정

* feat: 디자인 수정

* feat: 로직 수정

* fix: key 수정

* chore: 스테이지 용 임시 UI 제거

---------

Co-authored-by: hyejun <hyejunkkim228@gmail.com>

* [feat] sentry 모니터링 추가 (#141) (#142)

* chore: sentry 의존성 추가

* feat: sentry 세팅

* chore: 워크플로우 수정 및 vite 세팅

* chore: 임시 추가

* refactor: 색상 토큰 파일 분리

* refactor: 타이포그래피 스타일 파일 분리

* refactor: 피그마 타이포그래피 네이밍으로 클래스 정렬

* fix: 리뷰 코멘트 기반 접근성 및 토큰 정리

---------

Co-authored-by: 김혜준 <114041848+hyejun0228@users.noreply.github.com>
Co-authored-by: hyejun <hyejunkkim228@gmail.com>
@ff1451 ff1451 deleted the 111-feat-pre-member-목록-분리-및-api-적용 branch April 7, 2026 09:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] pre-member 목록 분리 및 API 적용

1 participant