Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
jitsi-meet/react/features/rejoin/middleware.ts

27 lines
1.2 KiB

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
})
);
}
}
});