import React, { useState } from 'react'; import { connect } from 'react-redux'; import { List } from 'immutable'; import { countries } from 'App/constants'; import { useStore } from 'App/mstore'; import { browserIcon, osIcon, deviceTypeIcon } from 'App/iconNames'; import { formatTimeOrDate } from 'App/date'; import { Avatar, TextEllipsis, SlideModal, Popup, CountryFlag, Icon } from 'UI'; import cn from 'classnames'; import { withRequest } from 'HOCs'; import SessionInfoItem from '../../SessionInfoItem'; import SessionList from '../Metadata/SessionList'; import { Tooltip } from 'react-tippy'; import { useModal } from 'App/components/Modal'; import UserSessionsModal from 'Shared/UserSessionsModal'; function UserCard({ className, request, session, width, height, similarSessions, loading }) { const { settingsStore } = useStore(); const { timezone } = settingsStore.sessionSettings; const [showUserSessions, setShowUserSessions] = useState(false); const { userBrowser, userDevice, userCountry, userBrowserVersion, userOs, userOsVersion, startedAt, userId, userAnonymousId, userNumericHash, userDisplayName, userDeviceType, revId, } = session; const hasUserDetails = !!userId || !!userAnonymousId; const showSimilarSessions = () => { setShowUserSessions(true); request({ key: !userId ? 'USERANONYMOUSID' : 'USERID', value: userId || userAnonymousId }); }; const getDimension = (width, height) => { return width && height ? (