27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
|
import { createRejoinedEvent, sendAnalytics } from '../analytics';
|
||
|
import { StateListenerRegistry } from '../base/redux';
|
||
|
|
||
|
StateListenerRegistry.register(
|
||
|
/* selector */ state => {
|
||
|
const recentList = state['features/recent-list'];
|
||
|
|
||
|
// Return the most recent conference entry
|
||
|
return recentList && recentList.length && recentList[recentList.length - 1];
|
||
|
},
|
||
|
// eslint-disable-next-line no-empty-pattern
|
||
|
/* listener */ (newMostRecent, { }, prevMostRecent) => {
|
||
|
if (prevMostRecent && newMostRecent) {
|
||
|
|
||
|
// Send the rejoined event just before the duration is reset on the most recent entry
|
||
|
if (prevMostRecent.conference === newMostRecent.conference && newMostRecent.duration === 0) {
|
||
|
sendAnalytics(
|
||
|
createRejoinedEvent({
|
||
|
lastConferenceDuration: prevMostRecent.duration / 1000,
|
||
|
timeSinceLeft: (Date.now() - (prevMostRecent.date + prevMostRecent.duration)) / 1000,
|
||
|
url: prevMostRecent.conference
|
||
|
})
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
});
|