Files
hushroom/.cli/tasks/0017-enter-submit-boarding-and-debrief.md

3.6 KiB

.cli/current.md

TASK_META (수정 금지)

  • TASK_TITLE: Enter로 진행 — 탑승(미션 설정) & 회고(항해일지) 폼을 form submit로 처리
  • TASK_SLUG: enter-submit-boarding-and-debrief

작업 목표

  1. 탑승(미션 설정) 화면/모달에서 사용자가 Enter를 누르면 “도킹 완료(출항)”과 동일하게 다음 흐름으로 진행되게 한다.
  2. 도착/회고(항해일지 작성) 화면/모달에서도 Enter를 누르면 “저장”과 동일하게 제출되어 다음 흐름으로 진행되게 한다.
  3. 멀티라인 입력(textarea)이 있다면 Enter 제출로 인해 입력이 불편해지지 않게 예외 처리를 한다.

적용 범위

  • 탑승(미션 설정) UI: 페이지(/boarding) 및/또는 로비에서 띄우는 탑승 모달(현재 구현 기준)
  • 회고(항해일지) UI: 페이지(/debrief) 및/또는 flight 종료 시 띄우는 회고 모달(현재 구현 기준)

작업 요구사항

A) 탑승(미션 설정) — Enter 제출(필수)

  • 미션 입력 UI를 <form>으로 감싼다.
  • “도킹 완료(출항)” 버튼은 type="submit"으로 처리한다.
  • Enter 키 입력 시 onSubmit이 실행되어 기존 출항 로직이 동일하게 호출되도록 한다.
  • 유효성(미션 필수)은 기존과 동일하게 유지한다.
  • 제출 성공 시 기존과 동일한 다음 화면(보통 flight)으로 이동한다.

B) 회고(항해일지) — Enter 제출(필수)

  • 회고 입력 UI를 <form>으로 감싼다.
  • “저장” 버튼은 type="submit"으로 처리한다.
  • Enter 키 입력 시 onSubmit이 실행되어 기존 저장 로직이 동일하게 호출되도록 한다.
  • 제출 성공 후 흐름은 기존과 동일하게 유지한다(로그 상세/목록/로비 등 현재 구현 따름).

C) textarea/멀티라인 입력 예외(중요)

  • 회고 질문이나 입력칸이 textarea(멀티라인)라면:
    • 기본 Enter는 줄바꿈이 되어야 한다(제출로 가로채지 않음).
    • 대신 Cmd/Ctrl + Enter로 제출되게 하거나,
    • textarea는 Enter 줄바꿈 유지 + 제출은 버튼/단축키로만(둘 중 하나 선택)
  • 단, 현재 입력이 전부 단일라인 input이면 Enter=submit로 단순 처리한다.

D) 모달 환경(필수)

  • 모달(탑승/회고)에서 Enter 제출이 동작하되, 포커스 트랩/닫기 정책과 충돌하지 않게 한다.
  • 제출 중 중복 submit 방지(버튼 disabled 또는 guard) 적용(권장).

E) 접근성(권장)

  • form submit 시 에러가 있으면 입력 필드에 포커스 이동 또는 에러 메시지 노출(현재 방식 유지)

Non-scope

  • 문구/UX 대개편 금지
  • 데이터 스키마 변경 금지
  • 다른 페이지 UI 변경 금지

적용 파일(예상)

  • 탑승 UI 위치:
    • @src/app/boarding/page.tsx 또는 widgets/boarding-screen/** 또는 로비 탑승 모달 컴포넌트
  • 회고 UI 위치:
    • @src/app/debrief/page.tsx 또는 widgets/debrief-screen/** 또는 flight 회고 모달 컴포넌트
  • flight 모달 트리거가 있는 경우:
    • @src/app/flight/page.tsx (필요 시 submit 핸들러 연결만)

완료 조건(AC)

  • 탑승 화면/모달에서 Enter를 누르면 “도킹 완료(출항)”과 동일하게 진행된다
  • 회고 화면/모달에서 Enter를 누르면 “저장”과 동일하게 진행된다
  • textarea가 있으면 Enter 줄바꿈이 보장되며(또는 Ctrl/Cmd+Enter 제출), 입력 경험이 깨지지 않는다
  • 유효성/저장/이동 로직은 기존과 동일하게 동작한다(중복 구현 없음)

완료 후 출력(최소)

  • 수정/생성/삭제된 파일 경로 목록
  • AC 체크 결과(OK/NO)