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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user