Переписал уведомления: toast/confirm вместо alert; объединил профиль+инвентарь; починил ленту активности

This commit is contained in:
root
2026-07-05 15:05:04 +00:00
parent fe6bf5cf29
commit 50535ec777
15 changed files with 1523 additions and 1111 deletions
+23 -9
View File
@@ -184,19 +184,27 @@ document.addEventListener('DOMContentLoaded', async () => {
document.getElementById('activityToggleBtn').classList.add('visible');
}
async function loadActivities() {
try {
const res = await fetch('/web/api/activity?limit=10');
const data = await res.json();
if (data.success && data.activities) {
renderActivities(data.activities);
}
} catch (e) {
if (list) list.innerHTML = '<div style="text-align:center;padding:2rem;color:var(--text-secondary);">Не удалось загрузить</div>';
}
}
WS.on('online_count', (data) => {
document.getElementById('onlineCount').textContent = data.online || 0;
});
try {
const res = await fetch('/web/api/activity?limit=10');
const data = await res.json();
if (data.success && data.activities) {
renderActivities(data.activities);
}
} catch (e) {
if (list) list.innerHTML = '<div style="text-align:center;padding:2rem;color:var(--text-secondary);">Не удалось загрузить</div>';
}
WS.on('connected', () => {
loadActivities();
});
await loadActivities();
WS.on('activity', (data) => {
const act = data.activity;
@@ -210,6 +218,12 @@ document.addEventListener('DOMContentLoaded', async () => {
list.removeChild(list.lastChild);
}
});
// Periodic refresh every 30s to catch missed activities
setInterval(loadActivities, 30000);
// Expose for manual refresh from other pages
window.refreshActivityFeed = loadActivities;
});
const RARITY_COLORS = {