From 86b2ac1e2d2cdf1f2aa33b6a31880b1e34a41fe5 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Wed, 24 Jun 2026 21:07:41 +0300 Subject: [PATCH] =?UTF-8?q?fix(flashcards):=20TDZ=20=E2=80=94=20=5FcollLab?= =?UTF-8?q?els=20=D0=BE=D0=B1=D1=8A=D1=8F=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=B4?= =?UTF-8?q?=D0=BE=20init(),=20=D0=B0=20=D0=B1=D1=8B=D0=BB=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit let _collLabels стоял после bootstrap init()-loadDecks(), который читает его синхронно, отсюда ReferenceError (доступ до инициализации). Перенёс объявление в верхний блок состояния (до IIFE), убрал позднее повторное let. Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/flashcards.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/flashcards.html b/frontend/flashcards.html index 5a6a32e..02d1bd4 100644 --- a/frontend/flashcards.html +++ b/frontend/flashcards.html @@ -694,6 +694,7 @@ let _curDeckReadonly = false; // общая колода (не вла let _shareData = { shares: [], classes: [], students: [] }; let _shareTab = 'class'; let _shareSet = new Set(); // ключи 'class:' / 'user:' текущих назначений +let _collLabels = null; // { collectionKey: label } для заголовков папок-коллекций (объявлено ДО init, иначе TDZ) (async () => { /* ── auth ── */ @@ -747,7 +748,6 @@ function bindStudyKeys() { }); } -let _collLabels = null; // { collectionKey: label } для заголовков папок-коллекций async function loadDecks() { const [decks, stats, tracks] = await Promise.all([ LS.api('/api/flashcards/decks').catch(()=>({decks:[]})),