import * as React from 'react' import * as moment from 'moment' import { humanizeTime, renderEndUserName } from '../../../utils/humanize' import PageViewActivity from './PageViewActivity' import MessageActivity from './MessageActivity' import ClickTrackActivity from './ClickTrackActivity' import OpenTrackActivity from './OpenTrackActivity' import { IActivity, IPageViewActivity, IMessageActivity, IClickTrackActivity, ActivityType, IOpenTrackActivity, } from '../../../modules/activity/interfaces' import { IProfile } from '../../../modules/enrichment/interfaces' interface ActivityProps { activity: IActivity profile?: IProfile isFirstInGroup: boolean } const renderElementBasedOnActivityType = (activity: IActivity) => { switch (activity.type) { case ActivityType.PAGE_VIEW: return ( ) case ActivityType.MESSAGE: return ( ) case ActivityType.CLICK: return ( ) case ActivityType.OPEN: return ( ) } } const renderCreatedAt = (createdAt: any) => ( ) class Activity extends React.Component { renderFirstInGroup() { const activity = this.props.activity const profile = this.props.profile const createdAt = activity.at return [
{renderEndUserName(activity.email, profile, activity)}
,
{renderElementBasedOnActivityType(activity)} {renderCreatedAt(createdAt)}
, ] } renderSecondInGroup() { const activity = this.props.activity const createdAt = activity.at return (
{renderElementBasedOnActivityType(activity)} {renderCreatedAt(createdAt)}
) } render() { return (
{this.props.isFirstInGroup ? this.renderFirstInGroup() : this.renderSecondInGroup()}
) } } export default Activity