fix(dashboard): Активность видна всегда + ряд одинаковой высоты

- loadActivityWidget показывает блок всегда (пустое состояние рисует
  renderHeatmap), даже при 0 сессий и при ошибке истории.
- .bottom-grid: align-items stretch + height 100% — карточки ряда
  (Активность/Мои сдачи/Испытания) одной высоты.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-05-31 12:02:32 +03:00
parent e6120c6fc8
commit 2addb8ec02
+6 -6
View File
@@ -154,9 +154,9 @@
grid-template-columns: repeat(3, 1fr); grid-template-columns: repeat(3, 1fr);
gap: 22px; gap: 22px;
margin-bottom: 22px; margin-bottom: 22px;
align-items: start; align-items: stretch;
} }
.bottom-grid > * { margin-bottom: 0; } .bottom-grid > * { margin-bottom: 0; height: 100%; }
.qa-btn { .qa-btn {
display: flex; align-items: center; gap: 8px; display: flex; align-items: center; gap: 8px;
@@ -3309,10 +3309,10 @@
/* ══ WIDGET: Activity heatmap (redesigned) ══════════════════════════ */ /* ══ WIDGET: Activity heatmap (redesigned) ══════════════════════════ */
function loadActivityWidget(rows) { function loadActivityWidget(rows) {
_activityRows = rows; _activityRows = rows || [];
const w = document.getElementById('w-activity'); const w = document.getElementById('w-activity');
if (!w || !rows || !rows.length) { if (w) w.style.display = 'none'; return; } if (!w) return;
w.style.display = ''; showWidget('w-activity'); // показываем всегда (пустое состояние рисует renderHeatmap)
renderHeatmap(); renderHeatmap();
} }
@@ -4061,7 +4061,7 @@
loadActivityWidget(rows); loadActivityWidget(rows);
loadSubjProgressWidget(rows); loadSubjProgressWidget(rows);
renderStreakCalendar(rows); renderStreakCalendar(rows);
} catch {} } catch { loadActivityWidget([]); }
const heroRow = document.getElementById('hero-row'); const heroRow = document.getElementById('hero-row');
if (heroRow) heroRow.style.display = ''; if (heroRow) heroRow.style.display = '';
loadContinueWidget(); loadContinueWidget();