refactor(study): 본문 표시를 q 단독 도착 시점으로 unblock

- load() 가 q 도착 후 related-types/siblings Promise.all 까지 기다려서 loading=false → 빈 카드 노출 시간이 셋 중 가장 느린 것 기준으로 늘어남
- q 직후 loading=false, 나머지 두 fetch 는 fire-and-forget
- related 섹션 자체 relatedLoading, prev/next 는 siblings 비면 안 보여 UX 영향 0

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-04-30 10:44:00 +09:00
parent 4687546e37
commit 36c8a0df3c
@@ -132,18 +132,17 @@
loading = true;
try {
q = await api(`/study-questions/${qid}`);
// 페이지 진입 시 AI 해설 상태 초기화 — q.ai_explanation_status 가 ready/stale 이면 1회 prefetch (캐시 hit).
// 사용자가 [해설 보기] 누르기 전엔 본문 표시 안 함, 다만 상태는 미리 알 수 있음.
aiState = 'idle';
aiData = null;
aiError = null;
related = null;
// 회차 prev/next + 반복 출제/유사 유형 병렬 로드.
await Promise.all([loadRoundSiblings(), loadRelatedTypes()]);
// body 표시는 q 도착 직후. 관련 유형/회차 sibling 은 fire-and-forget —
// related 섹션은 자체 relatedLoading 플래그, prev/next 는 siblings 비면 안 보임.
loading = false;
void Promise.allSettled([loadRoundSiblings(), loadRelatedTypes()]);
} catch (err) {
addToast('error', err?.detail || '문제 로드 실패');
q = null;
} finally {
loading = false;
}
}