This commit is contained in:
27
react/features/rejoin/middleware.ts
Normal file
27
react/features/rejoin/middleware.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { createRejoinedEvent } from '../analytics/AnalyticsEvents';
|
||||
import { sendAnalytics } from '../analytics/functions';
|
||||
import StateListenerRegistry from '../base/redux/StateListenerRegistry';
|
||||
|
||||
StateListenerRegistry.register(
|
||||
/* selector */ state => {
|
||||
const recentList = state['features/recent-list'];
|
||||
|
||||
// Return the most recent conference entry
|
||||
return 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
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user