import { renderHeader } from '../components/header.js'; import { authService, isSessionInvalidError, refreshSessions, setAuthError, state, terminateCurrentSession, } from '../state.js'; export const pageMeta = { id: 'device-session-view', title: 'Сеанс устройства' }; function formatSessionTime(ms) { return new Date(ms).toLocaleString('ru-RU', { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit', }); } export function render({ navigate, route }) { const screen = document.createElement('section'); screen.className = 'stack'; const sessionId = route?.params?.sessionId || ''; const session = (state.sessions || []).find((item) => item.sessionId === sessionId) || state.sessions[0]; screen.append( renderHeader({ title: 'Сеанс устройства', leftAction: { label: '←', onClick: () => navigate('device-view') }, }), ); if (!session) { const empty = document.createElement('div'); empty.className = 'card'; empty.textContent = 'Сеанс не найден.'; screen.append(empty); return screen; } const details = document.createElement('div'); details.className = 'card stack'; details.innerHTML = `
${session.sessionId}
${session.clientInfoFromClient || '-'}
${session.clientInfoFromRequest || '-'}
${session.geo || 'unknown'}
${formatSessionTime(session.lastAuthenticatedAtMs || Date.now())}