Files
hushroom/.cli/tasks/0022-flight-finish-hold-2s-ring-and-modal.md

54 lines
2.4 KiB
Markdown

# .cli/current.md
## TASK_META (수정 금지)
- TASK_TITLE: Flight 종료 버튼 2초 길게 누르기(hold-to-confirm) + 원형 진행선 + 종료 모달 오픈
- TASK_SLUG: flight-finish-hold-2s-ring-and-modal
## 문제(관찰)
- 현재는 종료 버튼 클릭 직후 종료 플로우가 진행되어 오작동(실수 클릭) 여지가 있다.
## 작업 목표
- 종료 버튼을 2초간 길게 눌렀을 때만 종료 모달이 열리도록 변경하고, 누르는 동안 버튼 테두리 진행선을 시각적으로 제공한다.
## 합리적 가정
- 종료 모달이 열리기 전까지는 항해 상태 저장/라우팅 같은 실제 종료 처리는 발생하지 않는다.
- 길게 누르기 완료 후에는 기존 종료 모달/종료 확정 흐름을 그대로 재사용한다.
## 적용 범위
- flight HUD 종료 버튼 UI/interaction: `src/widgets/flight-hud/ui/FlightHudWidget.tsx`
- flight 종료 트리거 상태/핸들러: `src/features/flight-session/model/useFlightSession.ts`
- 종료 모달 렌더/연결 위치(필요 시): `src/app/flight/page.tsx`
## 작업 요구사항
1. 종료 버튼은 단순 클릭으로는 종료되지 않고, 최소 2초 이상 길게 누른 경우에만 종료 모달이 열린다.
2. 길게 누르는 동안 버튼 테두리를 따라 0%→100%로 진행되는 원형(또는 버튼 외곽형) 진행선이 표시된다.
3. 2초 이전에 누름을 해제하면 진행선은 즉시 취소되고 초기 상태로 복귀한다.
4. 진행선이 100%에 도달하는 시점(2초 경과)에 종료 모달이 자동 오픈된다.
5. 모달 오픈 후 실제 종료 확정/취소 동작은 기존 정책과 동일하게 유지된다.
## Non-scope
- 타이머 계산/표시 로직 변경 금지
- 일시정지 버튼 동작 변경 금지
- 배경/스타필드/다른 페이지 UI 개편 금지
- 신규 라우트 추가 금지
## 완료 조건(AC)
- [ ] 종료 버튼 단순 클릭(짧은 터치/클릭)으로는 종료 모달이 열리지 않는다
- [ ] 2초 길게 누르면 종료 모달이 열린다
- [ ] 누르는 동안 버튼 테두리 진행선이 시간 경과에 맞춰 표시된다
- [ ] 2초 이전 해제 시 진행선이 초기화되고 아무 종료 동작도 발생하지 않는다
- [ ] 모달 이후 확정/취소 흐름은 기존과 동일하게 동작한다
## 완료 후 출력(최소)
- 수정/생성/삭제된 파일 경로 목록
- AC 체크 결과(OK/NO)