diff --git a/pages/[lang]/word/[id].vue b/pages/[lang]/word/[id].vue index 81a5a737..22e26908 100644 --- a/pages/[lang]/word/[id].vue +++ b/pages/[lang]/word/[id].vue @@ -167,24 +167,30 @@ const todayRevealed = ref(null); const todayRevealedDef = ref(null); onMounted(async () => { - // Check if today's word should be revealed (game over) - if (d.is_today && !word) { + // Check if today's word should be revealed (game over in localStorage) + if (d.is_today) { try { const saved = localStorage.getItem(lang); if (saved) { const state = JSON.parse(saved); - if (state.game_over && state.todays_word) { - todayRevealed.value = state.todays_word; - // Fetch definition for the revealed word - try { - const defData = await $fetch( - `/api/${lang}/definition/${encodeURIComponent(state.todays_word)}` - ); - if (defData && (defData as any).definition) { - todayRevealedDef.value = defData; + if (state.game_over) { + // Use word from localStorage or from SSR data + const revealedWord = state.todays_word || word; + if (revealedWord) { + todayRevealed.value = revealedWord; + // Fetch definition for the revealed word + if (!definition?.definition) { + try { + const defData = await $fetch( + `/api/${lang}/definition/${encodeURIComponent(revealedWord)}` + ); + if (defData && (defData as any).definition) { + todayRevealedDef.value = defData; + } + } catch { + // definition not available + } } - } catch { - // definition not available } } } @@ -345,9 +351,12 @@ onMounted(() => { - +
@@ -357,15 +366,18 @@ onMounted(() => { Definition - {{ todayRevealedDef.part_of_speech }} + {{ (todayRevealedDef || definition).part_of_speech }}

{{ todayRevealed }} — - {{ todayRevealedDef.definition_native || todayRevealedDef.definition }} + {{ + (todayRevealedDef || definition).definition_native || + (todayRevealedDef || definition).definition + }}