import type { DeviceManagementPopulatedSession } from '@rocket.chat/core-typings';
import { Box, Button, ButtonGroup, StatusBullet } from '@rocket.chat/fuselage';
import { UserAvatar } from '@rocket.chat/ui-avatar';
import {
ContextualbarHeader,
ContextualbarClose,
ContextualbarScrollableContent,
ContextualbarFooter,
ContextualbarTitle,
InfoPanel,
InfoPanelField,
InfoPanelLabel,
InfoPanelText,
} from '@rocket.chat/ui-client';
import { useRoute, useUserPresence } from '@rocket.chat/ui-contexts';
import { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import { useDeviceLogout } from '../../../../hooks/useDeviceLogout';
import { useFormatDateAndTime } from '../../../../hooks/useFormatDateAndTime';
export type DeviceManagementInfoProps = DeviceManagementPopulatedSession;
const DeviceManagementInfo = ({ device, sessionId, loginAt, ip, userId, _user }: DeviceManagementInfoProps) => {
const { t } = useTranslation();
const deviceManagementRouter = useRoute('device-management');
const formatDateAndTime = useFormatDateAndTime();
const handleDeviceLogout = useDeviceLogout(sessionId, '/v1/sessions/logout');
const { name: clientName, os, version: rcVersion } = device || {};
const { username, name } = _user || {};
const userPresence = useUserPresence(userId);
const handleCloseContextualBar = useCallback((): void => deviceManagementRouter.push({}), [deviceManagementRouter]);
return (
<>
{t('Device_Info')}
{t('Client')}
{clientName}
{t('Version')}
{rcVersion || '—'}
{t('OS')}
{`${os?.name || ''} ${os?.version || ''}`}
{username && (
{t('User')}
{name && {name}}
{`(${username})`}
)}
{t('Last_login')}
{formatDateAndTime(loginAt)}
{t('Device_ID')}
{sessionId}
{t('IP_Address')}
{ip}
>
);
};
export default DeviceManagementInfo;