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

2.4 KiB

.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)