@kiwicom/smart-faq
Version:
Smart FAQ
43 lines (34 loc) • 1.05 kB
JavaScript
// @noflow
import * as React from 'react';
import type {
Subcategory,
CuckooAction,
CuckooProps,
} from '../../../shared/cuckoo/cuckooTypes';
import { track } from '../../../shared/cuckoo/tracker';
/* @deprecated in favor of LogUnmount */
const LogladyTimeTracker = <TargetProps>(
TargetComponent: React.ComponentType<TargetProps>,
subcategory: Subcategory,
action: CuckooAction,
payloadBuilder?: (props: TargetProps) => CuckooProps,
): React.ComponentType<TargetProps> => {
class LogladyTimeTracked extends React.Component<TargetProps> {
openedAt: number;
componentDidMount() {
this.openedAt = Date.now();
}
componentWillUnmount() {
const timeOpen = Math.round((Date.now() - this.openedAt) / 1000);
const payload = payloadBuilder
? { ...payloadBuilder(this.props), timeOpen }
: {};
track(subcategory, action, payload);
}
render() {
return <TargetComponent {...this.props} />;
}
}
return LogladyTimeTracked;
};
export default LogladyTimeTracker;