import React from 'react'; import cn from 'classnames'; import { connect } from 'react-redux' import { TextEllipsis } from 'UI'; import withToggle from 'HOCs/withToggle'; import { TYPES } from 'Types/session/event'; import Event from './Event' import stl from './eventGroupWrapper.module.css'; import NoteEvent from './NoteEvent'; import { setEditNoteTooltip } from 'Duck/sessions'; // TODO: incapsulate toggler in LocationEvent @withToggle("showLoadInfo", "toggleLoadInfo") @connect(state => ({members: state.getIn(['members', 'list'])}), { setEditNoteTooltip }) class EventGroupWrapper extends React.Component { toggleLoadInfo = (e) => { e.stopPropagation(); this.props.toggleLoadInfo(); } componentDidUpdate(prevProps) { if (prevProps.showLoadInfo !== this.props.showLoadInfo || prevProps.query !== this.props.query) { this.props.mesureHeight(); } } componentDidMount() { this.props.toggleLoadInfo(this.props.isFirst) this.props.mesureHeight(); } onEventClick = (e) => this.props.onEventClick(e, this.props.event); onCheckboxClick = e => this.props.onCheckboxClick(e, this.props.event); render() { const { event, isLastEvent, isLastInGroup, isSelected, isCurrent, isEditing, showSelection, showLoadInfo, isFirst, presentInSearch, isNote, filterOutNote, } = this.props; const isLocation = event.type === TYPES.LOCATION; const whiteBg = isLastInGroup && event.type !== TYPES.LOCATION || (!isLastEvent && event.type !== TYPES.LOCATION) const safeRef = String(event.referrer || ''); return (
{ isFirst && isLocation && event.referrer &&
Referrer: {safeRef}
} {isNote ? ( m.id === event.userId)?.email || event.userId} timestamp={event.timestamp} tags={event.tags} isPublic={event.isPublic} message={event.message} sessionId={event.sessionId} date={event.createdAt} noteId={event.noteId} filterOutNote={filterOutNote} onEdit={this.props.setEditNoteTooltip} /> ) : isLocation ? : }
) } } export default EventGroupWrapper