import React from 'react'; import copy from 'copy-to-clipboard'; import cn from 'classnames'; import { Icon, TextEllipsis } from 'UI'; import { TYPES } from 'Types/session/event'; import { prorata } from 'App/utils'; import withOverlay from 'Components/hocs/withOverlay'; import LoadInfo from './LoadInfo'; import cls from './event.module.css'; import { numberWithCommas } from 'App/utils'; @withOverlay() export default class Event extends React.PureComponent { state = { menuOpen: false, } componentDidMount() { this.wrapper.addEventListener('contextmenu', this.onContextMenu); } onContextMenu = (e) => { e.preventDefault(); this.setState({ menuOpen: true }); } onMouseLeave = () => this.setState({ menuOpen: false }) copyHandler = (e) => { e.stopPropagation(); //const ctrlOrCommandPressed = e.ctrlKey || e.metaKey; //if (ctrlOrCommandPressed && e.keyCode === 67) { const { event } = this.props; copy(event.getIn([ 'target', 'path' ]) || event.url || ''); this.setState({ menuOpen: false }); } toggleInfo = (e) => { e.stopPropagation(); this.props.toggleInfo(); } // eslint-disable-next-line complexity renderBody = () => { const { event } = this.props; let title = event.type; let body; switch (event.type) { case TYPES.LOCATION: title = 'Visited'; body = event.url; break; case TYPES.CLICK: title = 'Clicked'; body = event.label; break; case TYPES.INPUT: title = 'Input'; body = event.value; break; case TYPES.CLICKRAGE: title = `${ event.count } Clicks`; body = event.label; break; case TYPES.IOS_VIEW: title = 'View'; body = event.name; break; } const isLocation = event.type === TYPES.LOCATION; const isClickrage = event.type === TYPES.CLICKRAGE; return (