feat(flashcards): системный skeleton-лоадер вместо текста «Загрузка…»
Простой текст «Загрузка…» в сетке колод заменён на общесистемный лоадер: loadDecks() рисует LS.skeleton(6,'card') (шиммер-карточки под форму будущих колод) на время запроса; статический плейсхолдер — системный .spinner из ls.css. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -447,7 +447,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="fc-stats" id="fc-stats-bar"></div>
|
<div class="fc-stats" id="fc-stats-bar"></div>
|
||||||
<div class="deck-grid" id="deck-grid">
|
<div class="deck-grid" id="deck-grid">
|
||||||
<div style="grid-column:1/-1; text-align:center; padding:40px; color:var(--text-3)">Загрузка…</div>
|
<div style="grid-column:1/-1"><div class="spinner"></div></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -749,6 +749,8 @@ function bindStudyKeys() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function loadDecks() {
|
async function loadDecks() {
|
||||||
|
const _grid = document.getElementById('deck-grid');
|
||||||
|
if (_grid && LS.skeleton) _grid.innerHTML = LS.skeleton(6, 'card'); // системные skeleton-карточки вместо «Загрузка…»
|
||||||
const [decks, stats, tracks] = await Promise.all([
|
const [decks, stats, tracks] = await Promise.all([
|
||||||
LS.api('/api/flashcards/decks').catch(()=>({decks:[]})),
|
LS.api('/api/flashcards/decks').catch(()=>({decks:[]})),
|
||||||
LS.api('/api/flashcards/stats').catch(()=>null),
|
LS.api('/api/flashcards/stats').catch(()=>null),
|
||||||
|
|||||||
Reference in New Issue
Block a user