Skip to content

[FEAT] 휴강 등록 및 보강 후보 조율 바텀시트 구현 - #10

Merged
sumin0423 merged 7 commits into
developfrom
feat/makeup-sheets
Nov 12, 2026
Merged

sumin0423 merged 7 commits into
developfrom
feat/makeup-sheets

Conversation

@sumin0423

Copy link
Copy Markdown
Contributor

📖 개요

T-12 시안에 맞춰 휴강 등록·보강 후보 선택 바텀시트를 구현하고, 기존 휴강 완료 화면의 보강 조율하기와 연결했습니다.

선행 PR: #8 → #9. 두 PR이 아직 열려 있어 현재 develop 비교에는 선행 변경도 포함됩니다. 순서대로 병합한 뒤 이 PR의 신규 변경 범위를 확인해 주세요.

✅ 변경 사항

공통 버튼 스타일

  • ActionButton에 선택적 tone과 disabledAppearance 추가
  • 보강 후보 CTA의 활성·미선택 안내 색상을 시안의 #0070EF로 일치
  • 다른 화면 버튼의 기본 스타일과 비활성 동작 유지

휴강 등록·보강 후보 조율

  • 휴강 등록 성공 후 후보 선택으로 전환, 시간만 변경하는 별도 흐름
  • 후보 1개 기본 제공, 최대 3개까지 추가
  • 후보 1은 삭제 불가, 후보 2·3에만 삭제 버튼 표시 및 삭제 후 번호 갱신
  • 날짜 필드 전체 터치로 달력 선택, 시간 필드에서 시간 선택
  • 날짜 칸 내부의 별도 달력 아이콘 제거
  • 날짜·시간 필수 검사, 중복 후보 차단 및 수신 동의 여부 확인
  • 처리 중 조작·닫기·중복 제출 차단, 실패 후 입력 유지 및 재시도
  • 독립 미리보기 및 화면별 구현 문서·스크린샷 추가

기존 휴강 완료 연결

  • T-10 완료 화면의 보강 조율하기에서 후보 선택 시트로 바로 진입
  • 이미 휴강한 경우 휴강 등록 단계를 반복하지 않도록 구분
  • 후보 선택 취소 후 기존 휴강 완료 화면 유지

🧪 검증

  • npm run typecheck, npm run lint, npm run format:check, npm run build 통과
  • 브라우저에서 최초 시트 → 후보 선택, 날짜·시간 선택, 후보 1 삭제 금지, 최대 3개, 삭제 후 번호 갱신 확인
  • 유효하지 않은 날짜·중복 후보 차단, 수신 동의 없음 처리, 공유 실패·재시도·미연동 안내 확인
  • 시간만 변경하는 흐름 및 기존 T-10 화면 연결 확인
  • 320px 화면에서 가로 넘침 없음 확인
  • 아이콘 제거 후 날짜 필드로 달력 선택·반영 확인
  • 후보 3개 전송 CTA가 활성 상태에서 #0070EF로 표시되는 것 확인
  • 구현 중 iOS·Android 번들 생성 확인. 이후 UI 수정은 타입·린트·웹 빌드·브라우저로 검증했으며 실제 기기 실행은 미검증

🖼️ 스크린샷

최초 바텀시트 후보 1개 후보 3개
최초 바텀시트 후보 1개 후보 3개

🔗 관련 Issue

연결된 이슈 없음. 선행 PR: #8, #9.

📂 영향 범위

  • src/components/ActionButton.tsx: 선택적 버튼 표현 옵션
  • src/features/makeup: 바텀시트·날짜/시간 선택·화면 모델·확인용 콜백
  • src/features/session-record/preview.tsx: 기존 완료 화면의 진입 연결
  • src/app/dev/makeup-coordination.tsx: 직접 확인 경로
  • docs/makeup-coordination.md, docs/screenshots/makeup-*: 구현 설명 및 화면

확인 경로:

  • /dev/makeup-coordination
  • ?step=candidates&count=1 또는 count=3
  • ?scenario=loading / ?scenario=error
  • ?step=candidates&count=1&consent=no

🙋 리뷰 요청 사항

  • 시안의 후보 행 배치 및 CTA 색상
  • 후보 1 고정·최대 3개·삭제 후 번호 갱신
  • 처리 중 입력 차단과 실패 후 상태 유지
  • 기존 완료 화면에서 후보 선택으로 직접 이어지는 구조

⚠️ 주의 사항

  • 전달 안내에 따라 미확정인 임시 일정 홈은 구현하지 않았습니다. 일정 화면 담당자가 시트를 호출하는 방식으로 연결할 수 있습니다.
  • API·카카오 SDK·실제 수신자 선택 및 전송은 미연결입니다. 미리보기에서는 실제 저장·공유를 완료했다고 표시하지 않습니다.
  • 실제 휴강 등록이 성공한 후 후보 선택을 취소해도 휴강 등록을 자동으로 취소하지는 않습니다.
  • 후보 날짜의 과거 허용 여부·수업 전 보강·시간 간격 등의 상세 정책은 확정이 필요합니다.
  • 개발 경로는 production에서 홈으로 이동합니다. 실제 서비스 연결 시 MakeupLesson과 MakeupActions를 전달해야 합니다.

@sumin0423 sumin0423 self-assigned this Nov 11, 2026
@sumin0423
sumin0423 merged commit d07d7da into develop Nov 12, 2026
1 check passed
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.

1 participant