Переписал уведомления: toast/confirm вместо alert; объединил профиль+инвентарь; починил ленту активности
This commit is contained in:
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user