feat(frontend): 면접 '잠시 중단' — 이어하기를 실제로 도달 가능하게 - #190
Merged
Conversation
점검 중 발견: `useSessionLifecycle` 의 `interrupt` 뮤테이션이 **어디서도 호출되지 않는다.** 라이브 화면의 유일한 이탈 경로는 '종료'(COMPLETED, 되돌릴 수 없음, 즉시 피드백)뿐이었다. 그 결과 어제 만든 이어하기(#180)가 사실상 도달 불가였다. INTERRUPTED 는 스위퍼가 **답변이 하나도 없는** 방치 세션에만 붙이기 때문이다(`hasAnswer ? COMPLETED : INTERRUPTED`). 즉 '이어하기' 가 닿는 건 아무것도 답하지 않고 떠난 경우뿐 — 정작 이어하고 싶은 "2개 답하고 자리를 비운" 경우는 COMPLETED 로 굳어 피드백까지 만들어진다. - 헤더에 '잠시 중단' 추가 → 확인 후 `interrupt` → INTERRUPTED - 그 직후 화면이 종료 패널로 바뀌고, 거기 이미 있는 '이어서 진행하기'(#180)로 바로 복귀 가능 - 확인 문구에서 종료와의 차이를 분명히 한다(대화 보존 / 피드백 미생성 / 나중에 재진입) 테스트 `InterviewStage.pause.test.tsx` (3) — 확인 없이는 중단되지 않음, '계속 진행' 시 미실행, 중단과 종료가 서로 다른 콜백을 부름(다이얼로그 확인 버튼과 헤더 버튼의 이름이 같아 다이얼로그 범위로 한정해 조회).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
점검에서 나온 것
useSessionLifecycle에interrupt뮤테이션이 정의돼 있는데 어디서도 호출되지 않는다. 라이브 화면의 유일한 이탈 경로는 '종료'(COMPLETED, 되돌릴 수 없음, 즉시 피드백 생성)뿐이었다.왜 중요한가 — 어제 만든 #180 이 사실상 닿지 않았다
SessionTimeoutService의 방치 세션 처리:즉 INTERRUPTED 는 답변이 하나도 없는 세션에만 붙는다. UI 에서 중단할 방법도 없으니, 어제 만든 '이어서 진행하기'(#180)가 닿는 범위는 아무것도 답하지 않고 떠난 면접뿐이었다.
정작 이어하고 싶은 상황 — 2개 답하고 전화를 받아 자리를 비운 경우 — 는
hasAnswer=true라 COMPLETED 로 굳고 부분 면접에 대한 피드백까지 만들어진다. 되돌릴 수 없다.수정
헤더에 '잠시 중단' 을 추가하고 확인 후
interrupt를 호출한다. 직후 화면이 종료 패널로 바뀌고, 거기 이미 있는 '이어서 진행하기'(#180) 로 바로 복귀할 수 있다. 히스토리 카드도 이미 '이어하기 →' 로 되어 있다(#175).즉 새 화면을 만들지 않고 이미 만들어 둔 경로에 진입점만 열었다.
확인 문구에서 종료와의 차이를 분명히 한다:
테스트
InterviewStage.pause.test.tsx(3) — 확인 없이는 중단되지 않음, '계속 진행' 시 미실행, 중단과 종료가 서로 다른 콜백을 부름.vitest 124/124 · eslint 0 · tsc · build 통과.
남는 제품 결정 (이 PR 범위 밖)
탭을 그냥 닫은 경우는 여전히
hasAnswer기준으로 COMPLETED 가 된다. 현실의 이탈은 버튼 클릭보다 탭 닫기가 많으므로, 이어하기가 정말 유용하려면 스위퍼 정책을 바꿔야 한다:기존의 의도적 동작을 없애는 변경이라 임의로 하지 않았다. 판단 부탁드린다.
영향 범위
PATCH /interrupt사용) / 환경변수: 없음shrink-0과 좁은 화면 연결배지 숨김을 넣어 자리를 확보해 뒀다