[FE-13] 앱 모집 상세 + 신청 + 개설자 취소 (A-R2)
작업 내용 (설계 의도)
변경 사항
mobile/app/recruitments/[id].tsx 신규. 토스 결제 상세 패턴 — 상단 요약 카드(참가비·정원 2/3·활동일·마감), 본문, 하단 고정 단일 CTA(“신청하기 · 5,000원”). useRecruitment로 조회.
- 신청:
useApplyRecruitment→ ApplyResult 수신 → fee>0면router.push('/payment?orderType=RECRUITMENT&orderId={applicationId}&paymentId=&checkoutUrl=...')(FE-10 pre-issued), fee=0면 즉시 확정 후 내 신청 목록. - 정원 마감 시 CTA disabled(“모집 마감됨”).
- 개설자 뷰: [신청자 보기](→ A-R4) + [모집 취소](danger,
useCancelRecruitment, 확인 다이얼로그). - 4상태: 로딩 LoadingView, 404 “없는 모집”, 403 잠금. 색 토큰.
근거: design-fe-app A-R2, 결제 재사용 결정.
의존
- FE-08 (useRecruitment/useApply/useCancelRecruitment), FE-04 (OrderType)
다이어그램
처리 흐름 (신청)
sequenceDiagram participant D as recruitments/[id] participant H as useApplyRecruitment participant P as payment/new D->>H: mutate() H-->>D: {applicationId, checkoutUrl, fee} alt fee>0 D->>P: push(RECRUITMENT, pre-issued checkoutUrl) else fee=0 D->>D: 즉시 확정 → 내 신청 목록 end
테스트 케이스
- 요약 카드가 참가비·정원·마감을 렌더한다
- 신청 탭(fee>0) 시 결제 화면으로 pre-issued 파라미터와 함께 이동한다
- fee=0 신청은 결제 없이 확정 처리된다
- 정원 마감 시 CTA가 disabled + “모집 마감됨”이다
- 개설자 뷰에만 [신청자 보기]·[모집 취소]가 노출된다
- 모집 취소 확인 후 useCancelRecruitment가 호출된다
- 404/403 각각 없음/잠금 UI를 낸다