import { connect } from 'react-redux';
import cn from 'classnames';
import {
Link,
Icon,
OsIcon,
BrowserIcon,
CountryFlag,
Avatar,
TextEllipsis
} from 'UI';
import { deviceTypeIcon } from 'App/iconNames';
import { toggleFavorite } from 'Duck/sessions';
import { session as sessionRoute } from 'App/routes';
import { durationFormatted, formatTimeOrDate } from 'App/date';
import stl from './sessionItem.css';
const Label = ({ label = '', color = 'color-gray-medium'}) => (
{label}
)
@connect(state => ({
timezone: state.getIn(['sessions', 'timezone'])
}), { toggleFavorite })
export default class SessionItem extends React.PureComponent {
state = { favouriting: false };
toggleFavorite = () => {
this.setState({ favouriting: true });
this.props.toggleFavorite(this.props.session).then(() => {
this.setState({ favouriting: false });
});
}
// eslint-disable-next-line complexity
render() {
const {
session: {
sessionId,
userBrowser,
userOs,
userId,
userAnonymousId,
userDisplayName,
userCountry,
startedAt,
duration,
eventsCount,
errorsCount,
pagesCount,
viewed,
favorite,
userDeviceType,
userUuid,
userNumericHash,
},
timezone,
onUserClick,
hasUserFilter = false,
disableUser = false
} = this.props;
const formattedDuration = durationFormatted(duration);
const hasUserId = userId || userAnonymousId;
return (
(!disableUser && !hasUserFilter && hasUserId) && onUserClick(userId, userAnonymousId)}
>
{ eventsCount }
{ errorsCount }
);
}
}