Skip to content

feat: 승인됨 탭 추가#139

Open
ff1451 wants to merge 1 commit intodevelopfrom
138-feat-승인된-지원자-지원서-확인-가능케-변경

Hidden character warning

The head ref may contain hidden characters: "138-feat-\uc2b9\uc778\ub41c-\uc9c0\uc6d0\uc790-\uc9c0\uc6d0\uc11c-\ud655\uc778-\uac00\ub2a5\ucf00-\ubcc0\uacbd"
Open

feat: 승인됨 탭 추가#139
ff1451 wants to merge 1 commit intodevelopfrom
138-feat-승인된-지원자-지원서-확인-가능케-변경

Conversation

@ff1451
Copy link
Collaborator

@ff1451 ff1451 commented Feb 26, 2026

Summary by CodeRabbit

  • 새로운 기능
    • 회원 신청서 관리 화면에 탭 기능 추가 - 대기 중 및 승인됨 탭으로 구분하여 관리
    • 각 탭별 독립적인 페이지네이션으로 대기 중인 신청서와 승인된 신청서를 쉽게 전환 가능
    • 대기 중 탭에서만 승인/거절 버튼 표시

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

coderabbitai bot commented Feb 26, 2026

📝 Walkthrough

Walkthrough

클럽 멤버 애플리케이션 조회 기능이 추가되었습니다. API 레이어에 getManagedClubMemberApplications 함수를 추가하고, 이를 활용하는 useManagedMemberApplications 커스텀 훅을 구현했습니다. ManagedApplicationList 컴포넌트는 pending과 approved 두 개의 탭으로 분류되어 각 탭별 독립적인 페이지네이션과 데이터 페칭을 지원하도록 리팩토링되었습니다.

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 변경 사항의 핵심을 명확하게 반영합니다. 승인됨 탭 기능 추가라는 주요 변경 사항을 간결하게 표현했습니다.

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

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 138-feat-승인된-지원자-지원서-확인-가능케-변경

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

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: 1

🧹 Nitpick comments (1)
src/pages/Manager/ManagedApplicationList/index.tsx (1)

103-104: 빈 목록 상태 UI를 추가하면 UX가 좋아집니다.

Line 103-104에서 항목이 0개면 영역이 비어 보입니다. 탭별 빈 상태 메시지를 넣는 것을 권장합니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/Manager/ManagedApplicationList/index.tsx` around lines 103 - 104,
The view currently maps currentList?.applications to Card and shows nothing when
the array is empty; update the ManagedApplicationList render to detect when
currentList?.applications is empty (e.g., !currentList ||
currentList.applications.length === 0) and render a tab-specific empty state
component or message instead of the map; locate the mapping code around
currentList?.applications.map(...) and replace or wrap it with a conditional
that renders a reusable Empty/Placeholder UI (with explanatory text and an
action button if appropriate) so each tab shows a clear empty-state message.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/pages/Manager/ManagedApplicationList/index.tsx`:
- Around line 26-27: The two hooks useGetManagedApplications and
useGetManagedMemberApplications are always invoked regardless of activeTab, so
if the inactive tab's useSuspenseQuery fails it blocks rendering; update the
component to only call each hook when its tab is active (or wrap each tab pane
in its own Suspense boundary) and add error handling for
useGetManagedMemberApplications (e.g., catch or error boundary) so
member-application API errors don't bubble up; specifically, conditionally
invoke useGetManagedApplications when activeTab === 'applications' (or render
its Suspense-wrapped pane) and conditionally invoke
useGetManagedMemberApplications when activeTab === 'members' (or wrap it with
its own Suspense/ErrorBoundary) to prevent inactive-tab API failures from
affecting the active tab.

---

Nitpick comments:
In `@src/pages/Manager/ManagedApplicationList/index.tsx`:
- Around line 103-104: The view currently maps currentList?.applications to Card
and shows nothing when the array is empty; update the ManagedApplicationList
render to detect when currentList?.applications is empty (e.g., !currentList ||
currentList.applications.length === 0) and render a tab-specific empty state
component or message instead of the map; locate the mapping code around
currentList?.applications.map(...) and replace or wrap it with a conditional
that renders a reusable Empty/Placeholder UI (with explanatory text and an
action button if appropriate) so each tab shows a clear empty-state message.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1f8f825 and 817886b.

📒 Files selected for processing (3)
  • src/apis/club/index.ts
  • src/pages/Manager/ManagedApplicationList/index.tsx
  • src/pages/Manager/hooks/useManagedMemberApplications.ts

Comment on lines +26 to +27
const { managedClubApplicationList, hasNoRecruitment } = useGetManagedApplications(clubId, pendingPage, limit);
const { managedClubMemberApplicationList } = useGetManagedMemberApplications(clubId, approvedPage, limit);
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat -n src/pages/Manager/ManagedApplicationList/index.tsx | head -50

Repository: BCSDLab/KONECT_FRONT_END

Length of output: 2195


🏁 Script executed:

rg -n 'useGetManagedApplications|useGetManagedMemberApplications|activeTab' src/pages/Manager/ManagedApplicationList/index.tsx -B2 -A2

Repository: BCSDLab/KONECT_FRONT_END

Length of output: 2207


🏁 Script executed:

fd -e ts -e tsx -path "*hooks*" | grep -i 'managed'

Repository: BCSDLab/KONECT_FRONT_END

Length of output: 236


🏁 Script executed:

fd -type f -name "*useManagedApplications*"

Repository: BCSDLab/KONECT_FRONT_END

Length of output: 238


🏁 Script executed:

fd -type f -name "*useManagedMemberApplications*"

Repository: BCSDLab/KONECT_FRONT_END

Length of output: 238


🏁 Script executed:

fd "useManagedApplications" --extension ts --extension tsx

Repository: BCSDLab/KONECT_FRONT_END

Length of output: 117


🏁 Script executed:

fd "useManagedMemberApplications" --extension ts --extension tsx

Repository: BCSDLab/KONECT_FRONT_END

Length of output: 123


🏁 Script executed:

cat -n src/pages/Manager/hooks/useManagedApplications.ts

Repository: BCSDLab/KONECT_FRONT_END

Length of output: 3858


🏁 Script executed:

cat -n src/pages/Manager/hooks/useManagedMemberApplications.ts

Repository: BCSDLab/KONECT_FRONT_END

Length of output: 1060


비활성 탭 API 오류가 활성 탭 렌더링을 막고 있습니다

26-27줄에서 두 훅이 useSuspenseQuery를 사용하며 activeTab 상태와 무관하게 항상 호출되고 있습니다. 따라서 비활성 탭의 API가 실패하면 Suspense 경계로 인해 현재 탭 화면 렌더링까지 실패합니다. 각 탭을 독립적인 Suspense 경계로 분리하거나, 훅 호출을 탭별로 조건부 실행하도록 개선해주세요.

추가로 useGetManagedMemberApplications는 에러 핸들링이 없어서 더 취약합니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/Manager/ManagedApplicationList/index.tsx` around lines 26 - 27, The
two hooks useGetManagedApplications and useGetManagedMemberApplications are
always invoked regardless of activeTab, so if the inactive tab's
useSuspenseQuery fails it blocks rendering; update the component to only call
each hook when its tab is active (or wrap each tab pane in its own Suspense
boundary) and add error handling for useGetManagedMemberApplications (e.g.,
catch or error boundary) so member-application API errors don't bubble up;
specifically, conditionally invoke useGetManagedApplications when activeTab ===
'applications' (or render its Suspense-wrapped pane) and conditionally invoke
useGetManagedMemberApplications when activeTab === 'members' (or wrap it with
its own Suspense/ErrorBoundary) to prevent inactive-tab API failures from
affecting the active tab.

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] 승인된 지원자 지원서 확인 가능케 변경

1 participant