fix(cefr): fix ReferenceError q is not defined in handleOptionTap, bump PWA to v5.4

This commit is contained in:
2026-10-06 16:12:05 +03:00
parent 15d4987977
commit 332286b641
3 changed files with 8 additions and 5 deletions
+2 -2
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<title>Notes — Персональный тренажер и словарь английского языка</title> <title>Notes — Персональный тренажер и словарь английского языка</title>
<meta name="description" content="Защищённый персональный тренажёр и словарь английского языка с интервальными повторениями SRS SM-2, контекстным поиском и озвучкой"> <meta name="description" content="Защищённый персональный тренажёр и словарь английского языка с интервальными повторениями SRS SM-2, контекстным поиском и озвучкой">
<link rel="stylesheet" href="/static/css/style.css?v=5.3"> <link rel="stylesheet" href="/static/css/style.css?v=5.4">
<!-- PWA meta and icons --> <!-- PWA meta and icons -->
<link rel="manifest" href="/manifest.json"> <link rel="manifest" href="/manifest.json">
@@ -1383,7 +1383,7 @@
<!-- Audio Element for native streaming --> <!-- Audio Element for native streaming -->
<audio id="global-audio-player" preload="none"></audio> <audio id="global-audio-player" preload="none"></audio>
<script type="module" src="/static/js/app.js?v=5.3"></script> <script type="module" src="/static/js/app.js?v=5.4"></script>
</body> </body>
</html> </html>
+5 -2
View File
@@ -352,6 +352,9 @@ async function handleOptionTap(questionId, selectedOption, clickedBtn) {
if (isAnswered) return; if (isAnswered) return;
isAnswered = true; isAnswered = true;
const q = currentQuiz[currentQuestionIdx];
const sentence = q ? q.sentence : '';
// Disable all options // Disable all options
document.querySelectorAll('.cefr-opt-btn').forEach(b => { document.querySelectorAll('.cefr-opt-btn').forEach(b => {
b.disabled = true; b.disabled = true;
@@ -384,7 +387,7 @@ async function handleOptionTap(questionId, selectedOption, clickedBtn) {
${renderOptionsBreakdown(res.options_breakdown)} ${renderOptionsBreakdown(res.options_breakdown)}
`; `;
feedbackBox.classList.remove('hidden'); feedbackBox.classList.remove('hidden');
attachBreakdownListeners(feedbackBox, q.sentence); attachBreakdownListeners(feedbackBox, sentence);
} }
} else { } else {
sessionStats.mistakes++; sessionStats.mistakes++;
@@ -433,7 +436,7 @@ async function handleOptionTap(questionId, selectedOption, clickedBtn) {
${renderOptionsBreakdown(res.options_breakdown)} ${renderOptionsBreakdown(res.options_breakdown)}
`; `;
feedbackBox.classList.remove('hidden'); feedbackBox.classList.remove('hidden');
attachBreakdownListeners(feedbackBox, q.sentence); attachBreakdownListeners(feedbackBox, sentence);
} }
} }
+1 -1
View File
@@ -1,7 +1,7 @@
// Service Worker for Notes English PWA (Stage 2) // Service Worker for Notes English PWA (Stage 2)
// Strategy: Cache-first for static assets, Network-first for API calls. // Strategy: Cache-first for static assets, Network-first for API calls.
const CACHE_NAME = 'notes-v5.3'; const CACHE_NAME = 'notes-v5.4';
const OFFLINE_URL = '/'; const OFFLINE_URL = '/';
const PRECACHE_URLS = [ const PRECACHE_URLS = [