# .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를 `
`으로 감싼다. - “도킹 완료(출항)” 버튼은 `type="submit"`으로 처리한다. - Enter 키 입력 시 `onSubmit`이 실행되어 기존 출항 로직이 동일하게 호출되도록 한다. - 유효성(미션 필수)은 기존과 동일하게 유지한다. - 제출 성공 시 기존과 동일한 다음 화면(보통 flight)으로 이동한다. ### B) 회고(항해일지) — Enter 제출(필수) - 회고 입력 UI를 ``으로 감싼다. - “저장” 버튼은 `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)