diff --git a/conference.js b/conference.js index f3824129e..4164267a4 100644 --- a/conference.js +++ b/conference.js @@ -16,7 +16,7 @@ import UIEvents from './service/UI/UIEvents'; import UIUtil from './modules/UI/util/UIUtil'; import * as JitsiMeetConferenceEvents from './ConferenceEvents'; -import { initAnalytics } from './react/features/analytics'; +import { initAnalytics, sendEvent } from './react/features/analytics'; import EventEmitter from "events"; @@ -1315,7 +1315,7 @@ export default { promise = createLocalTracksF({ devices: ['video'] }) .then(([stream]) => this.useVideoStream(stream)) .then(() => { - JitsiMeetJS.analytics.sendEvent( + sendEvent( 'conference.sharingDesktop.stop'); logger.log('switched back to local video'); if (!this.localVideo && wasVideoMuted) { @@ -1486,7 +1486,7 @@ export default { return this.useVideoStream(stream); }).then(() => { this.videoSwitchInProgress = false; - JitsiMeetJS.analytics.sendEvent('conference.sharingDesktop.start'); + sendEvent('conference.sharingDesktop.start'); logger.log('sharing local desktop'); }).catch(error => { this.videoSwitchInProgress = false; @@ -1753,7 +1753,7 @@ export default { room.selectParticipant(id); } catch (e) { - JitsiMeetJS.analytics.sendEvent( + sendEvent( 'selectParticipant.failed'); reportError(e); } @@ -1973,7 +1973,7 @@ export default { // Longer delays will be caused by something else and will just // poison the data. if (delay < 2000) { - JitsiMeetJS.analytics.sendEvent('stream.switch.delay', + sendEvent('stream.switch.delay', {value: delay}); } }); @@ -2005,7 +2005,7 @@ export default { APP.UI.addListener( UIEvents.VIDEO_DEVICE_CHANGED, (cameraDeviceId) => { - JitsiMeetJS.analytics.sendEvent('settings.changeDevice.video'); + sendEvent('settings.changeDevice.video'); createLocalTracksF({ devices: ['video'], cameraDeviceId: cameraDeviceId, @@ -2033,7 +2033,7 @@ export default { APP.UI.addListener( UIEvents.AUDIO_DEVICE_CHANGED, (micDeviceId) => { - JitsiMeetJS.analytics.sendEvent( + sendEvent( 'settings.changeDevice.audioIn'); createLocalTracksF({ devices: ['audio'], @@ -2054,7 +2054,7 @@ export default { APP.UI.addListener( UIEvents.AUDIO_OUTPUT_DEVICE_CHANGED, (audioOutputDeviceId) => { - JitsiMeetJS.analytics.sendEvent( + sendEvent( 'settings.changeDevice.audioOut'); APP.settings.setAudioOutputDeviceId(audioOutputDeviceId) .then(() => logger.log('changed audio output device')) @@ -2361,9 +2361,7 @@ export default { * NOTE: Should be used after conference.init */ logEvent(name, value, label) { - if (JitsiMeetJS.analytics) { - JitsiMeetJS.analytics.sendEvent(name, {value, label}); - } + sendEvent(name, {value, label}); if (room) { room.sendApplicationLog(JSON.stringify({name, value, label})); } diff --git a/modules/UI/recording/Recording.js b/modules/UI/recording/Recording.js index 82ccdbdef..696d5b48e 100644 --- a/modules/UI/recording/Recording.js +++ b/modules/UI/recording/Recording.js @@ -1,4 +1,4 @@ -/* global APP, $, config, interfaceConfig, JitsiMeetJS */ +/* global APP, $, config, interfaceConfig */ /* * Copyright @ 2015 Atlassian Pty Ltd * @@ -23,6 +23,9 @@ import VideoLayout from '../videolayout/VideoLayout'; import { JitsiRecordingStatus } from '../../../react/features/base/lib-jitsi-meet'; +import { + sendEvent +} from '../../../react/features/analytics'; import { setToolboxEnabled } from '../../../react/features/toolbox'; import { setNotificationsEnabled } from '../../../react/features/notifications'; import { @@ -437,7 +440,7 @@ var Recording = { return; } - JitsiMeetJS.analytics.sendEvent('recording.clicked'); + sendEvent('recording.clicked'); switch (this.currentState) { case JitsiRecordingStatus.ON: case JitsiRecordingStatus.RETRYING: @@ -445,7 +448,7 @@ var Recording = { _showStopRecordingPrompt(this.recordingType).then( () => { this.eventEmitter.emit(UIEvents.RECORDING_TOGGLED); - JitsiMeetJS.analytics.sendEvent('recording.stopped'); + sendEvent('recording.stopped'); }, () => {}); break; @@ -457,19 +460,19 @@ var Recording = { this.eventEmitter.emit( UIEvents.RECORDING_TOGGLED, { streamId }); - JitsiMeetJS.analytics.sendEvent('recording.started'); + sendEvent('recording.started'); }).catch(reason => { if (reason !== APP.UI.messageHandler.CANCEL) logger.error(reason); else - JitsiMeetJS.analytics.sendEvent('recording.canceled'); + sendEvent('recording.canceled'); }); else { if (this.predefinedToken) { this.eventEmitter.emit( UIEvents.RECORDING_TOGGLED, { token: this.predefinedToken }); - JitsiMeetJS.analytics.sendEvent('recording.started'); + sendEvent('recording.started'); return; } @@ -477,12 +480,12 @@ var Recording = { this.eventEmitter.emit( UIEvents.RECORDING_TOGGLED, { token }); - JitsiMeetJS.analytics.sendEvent('recording.started'); + sendEvent('recording.started'); }).catch(reason => { if (reason !== APP.UI.messageHandler.CANCEL) logger.error(reason); else - JitsiMeetJS.analytics.sendEvent('recording.canceled'); + sendEvent('recording.canceled'); }); } break; diff --git a/modules/UI/shared_video/SharedVideo.js b/modules/UI/shared_video/SharedVideo.js index 8b5da3392..338d11810 100644 --- a/modules/UI/shared_video/SharedVideo.js +++ b/modules/UI/shared_video/SharedVideo.js @@ -1,5 +1,4 @@ -/* global $, APP, YT, onPlayerReady, onPlayerStateChange, onPlayerError, -JitsiMeetJS */ +/* global $, APP, YT, onPlayerReady, onPlayerStateChange, onPlayerError */ const logger = require("jitsi-meet-logger").getLogger(__filename); import UIUtil from '../util/UIUtil'; @@ -9,6 +8,7 @@ import VideoLayout from "../videolayout/VideoLayout"; import LargeContainer from '../videolayout/LargeContainer'; import Filmstrip from '../videolayout/Filmstrip'; +import { sendEvent } from '../../../react/features/analytics'; import { participantJoined, participantLeft @@ -79,11 +79,11 @@ export default class SharedVideoManager { url => { this.emitter.emit( UIEvents.UPDATE_SHARED_VIDEO, url, 'start'); - JitsiMeetJS.analytics.sendEvent('sharedvideo.started'); + sendEvent('sharedvideo.started'); }, err => { logger.log('SHARED VIDEO CANCELED', err); - JitsiMeetJS.analytics.sendEvent('sharedvideo.canceled'); + sendEvent('sharedvideo.canceled'); } ); return; @@ -102,7 +102,7 @@ export default class SharedVideoManager { } this.emitter.emit( UIEvents.UPDATE_SHARED_VIDEO, this.url, 'stop'); - JitsiMeetJS.analytics.sendEvent('sharedvideo.stoped'); + sendEvent('sharedvideo.stoped'); }, () => {}); } else { @@ -114,7 +114,7 @@ export default class SharedVideoManager { dialog = null; } ); - JitsiMeetJS.analytics.sendEvent('sharedvideo.alreadyshared'); + sendEvent('sharedvideo.alreadyshared'); } } @@ -218,7 +218,7 @@ export default class SharedVideoManager { self.smartAudioMute(); } else if (event.data == YT.PlayerState.PAUSED) { self.smartAudioUnmute(); - JitsiMeetJS.analytics.sendEvent('sharedvideo.paused'); + sendEvent('sharedvideo.paused'); } self.fireSharedVideoEvent(event.data == YT.PlayerState.PAUSED); }; @@ -248,7 +248,7 @@ export default class SharedVideoManager { else if (event.data.volume <=0 || event.data.muted) { self.smartAudioUnmute(); } - JitsiMeetJS.analytics.sendEvent('sharedvideo.volumechanged'); + sendEvent('sharedvideo.volumechanged'); }; window.onPlayerReady = function(event) { diff --git a/modules/UI/side_pannels/profile/Profile.js b/modules/UI/side_pannels/profile/Profile.js index f12ba99d0..16048d4a8 100644 --- a/modules/UI/side_pannels/profile/Profile.js +++ b/modules/UI/side_pannels/profile/Profile.js @@ -1,8 +1,10 @@ -/* global $, APP, JitsiMeetJS */ +/* global $, APP */ import UIUtil from "../../util/UIUtil"; import UIEvents from "../../../../service/UI/UIEvents"; import Settings from '../../../settings/Settings'; +import { sendEvent } from '../../../../react/features/analytics'; + const sidePanelsContainerId = 'sideToolbarContainer'; const htmlStr = `
@@ -74,7 +76,7 @@ export default { // LOGIN function loginClicked () { - JitsiMeetJS.analytics.sendEvent('authenticate.login.clicked'); + sendEvent('authenticate.login.clicked'); emitter.emit(UIEvents.AUTH_CLICKED); } @@ -84,7 +86,7 @@ export default { function logoutClicked () { let titleKey = "dialog.logoutTitle"; let msgKey = "dialog.logoutQuestion"; - JitsiMeetJS.analytics.sendEvent('authenticate.logout.clicked'); + sendEvent('authenticate.logout.clicked'); // Ask for confirmation APP.UI.messageHandler.openTwoButtonDialog({ titleKey: titleKey, diff --git a/modules/UI/videolayout/Filmstrip.js b/modules/UI/videolayout/Filmstrip.js index 4dac9e00e..f9dd7d934 100644 --- a/modules/UI/videolayout/Filmstrip.js +++ b/modules/UI/videolayout/Filmstrip.js @@ -1,10 +1,12 @@ -/* global $, APP, JitsiMeetJS, interfaceConfig */ +/* global $, APP, interfaceConfig */ import { setFilmstripVisibility } from '../../../react/features/filmstrip'; import UIEvents from "../../../service/UI/UIEvents"; import UIUtil from "../util/UIUtil"; +import { sendEvent } from '../../../react/features/analytics'; + const Filmstrip = { /** * @@ -141,7 +143,7 @@ const Filmstrip = { return; } if (sendAnalytics) { - JitsiMeetJS.analytics.sendEvent('toolbar.filmstrip.toggled'); + sendEvent('toolbar.filmstrip.toggled'); } this.filmstrip.toggleClass("hidden"); diff --git a/modules/keyboardshortcut/keyboardshortcut.js b/modules/keyboardshortcut/keyboardshortcut.js index dc9922707..18d160745 100644 --- a/modules/keyboardshortcut/keyboardshortcut.js +++ b/modules/keyboardshortcut/keyboardshortcut.js @@ -1,6 +1,7 @@ -/* global APP, $, JitsiMeetJS, interfaceConfig */ +/* global APP, $, interfaceConfig */ import { toggleDialog } from '../../react/features/base/dialog'; +import { sendEvent } from '../../react/features/analytics'; import { SpeakerStats } from '../../react/features/speaker-stats'; /** @@ -20,20 +21,20 @@ function initGlobalShortcuts() { }); KeyboardShortcut.registerShortcut("?", null, function() { - JitsiMeetJS.analytics.sendEvent("shortcut.shortcut.help"); + sendEvent("shortcut.shortcut.help"); showKeyboardShortcutsPanel(true); }, "keyboardShortcuts.toggleShortcuts"); // register SPACE shortcut in two steps to insure visibility of help message KeyboardShortcut.registerShortcut(" ", null, function() { - JitsiMeetJS.analytics.sendEvent("shortcut.talk.clicked"); + sendEvent("shortcut.talk.clicked"); APP.conference.muteAudio(true); }); KeyboardShortcut._addShortcutToHelp("SPACE","keyboardShortcuts.pushToTalk"); if(!interfaceConfig.filmStripOnly) { KeyboardShortcut.registerShortcut("T", null, () => { - JitsiMeetJS.analytics.sendEvent("shortcut.speakerStats.clicked"); + sendEvent("shortcut.speakerStats.clicked"); APP.store.dispatch(toggleDialog(SpeakerStats, { conference: APP.conference })); diff --git a/react/features/analytics/functions.js b/react/features/analytics/functions.js index ce7ab8970..6f87d7c58 100644 --- a/react/features/analytics/functions.js +++ b/react/features/analytics/functions.js @@ -1,10 +1,15 @@ // @flow -import JitsiMeetJS, { isAnalyticsEnabled } from '../base/lib-jitsi-meet'; +import JitsiMeetJS, { + analytics, + isAnalyticsEnabled +} from '../base/lib-jitsi-meet'; import { getJitsiMeetGlobalNS, loadScript } from '../base/util'; const logger = require('jitsi-meet-logger').getLogger(__filename); +export const sendEvent = analytics.sendEvent.bind(analytics); + /** * Loads the analytics scripts and inits JitsiMeetJS.analytics by setting * permanent properties and setting the handlers from the loaded scripts. @@ -19,8 +24,6 @@ export function initAnalytics({ getState }: { getState: Function }) { getJitsiMeetGlobalNS().analyticsHandlers = []; window.analyticsHandlers = []; // Legacy support. - const { analytics } = JitsiMeetJS; - if (!analytics || !isAnalyticsEnabled(getState)) { return; } diff --git a/react/features/base/conference/middleware.js b/react/features/base/conference/middleware.js index 28c964e02..3688db999 100644 --- a/react/features/base/conference/middleware.js +++ b/react/features/base/conference/middleware.js @@ -2,8 +2,8 @@ import UIEvents from '../../../../service/UI/UIEvents'; +import { sendEvent } from '../../analytics'; import { CONNECTION_ESTABLISHED } from '../connection'; -import JitsiMeetJS from '../lib-jitsi-meet'; import { setVideoMuted, VIDEO_MUTISM_AUTHORITY } from '../media'; import { getLocalParticipant, @@ -191,7 +191,7 @@ function _pinParticipant(store, next, action) { videoType = 'remote'; } - JitsiMeetJS.analytics.sendEvent( + sendEvent( `${actionName}.${videoType}`, { value: conference.getParticipantCount() }); } diff --git a/react/features/base/lib-jitsi-meet/index.js b/react/features/base/lib-jitsi-meet/index.js index b83f29806..a5c632249 100644 --- a/react/features/base/lib-jitsi-meet/index.js +++ b/react/features/base/lib-jitsi-meet/index.js @@ -19,6 +19,8 @@ export const JitsiRecordingStatus = JitsiMeetJS.constants.recordingStatus; export const JitsiTrackErrors = JitsiMeetJS.errors.track; export const JitsiTrackEvents = JitsiMeetJS.events.track; +export const analytics = JitsiMeetJS.analytics; + export * from './actions'; export * from './actionTypes'; export * from './constants'; diff --git a/react/features/feedback/components/FeedbackDialog.web.js b/react/features/feedback/components/FeedbackDialog.web.js index bfa343fba..a9f27ee8d 100644 --- a/react/features/feedback/components/FeedbackDialog.web.js +++ b/react/features/feedback/components/FeedbackDialog.web.js @@ -4,9 +4,9 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; +import { sendEvent } from '../../analytics'; import { Dialog } from '../../base/dialog'; import { translate } from '../../base/i18n'; -import JitsiMeetJS from '../../base/lib-jitsi-meet'; import { cancelFeedback, submitFeedback } from '../actions'; @@ -145,7 +145,7 @@ class FeedbackDialog extends Component { * @inheritdoc */ componentDidMount() { - JitsiMeetJS.analytics.sendEvent('feedback.open'); + sendEvent('feedback.open'); } /** diff --git a/react/features/invite/components/InviteDialog.web.js b/react/features/invite/components/InviteDialog.web.js index 5578f8611..940ebaf70 100644 --- a/react/features/invite/components/InviteDialog.web.js +++ b/react/features/invite/components/InviteDialog.web.js @@ -2,10 +2,10 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; +import { sendEvent } from '../../analytics'; import { getInviteURL } from '../../base/connection'; import { Dialog } from '../../base/dialog'; import { translate } from '../../base/i18n'; -import JitsiMeetJS from '../../base/lib-jitsi-meet'; import { getLocalParticipant, PARTICIPANT_ROLE } from '../../base/participants'; import DialInNumbersForm from './DialInNumbersForm'; @@ -51,7 +51,7 @@ class InviteDialog extends Component { * @inheritdoc */ componentWillUnmount() { - JitsiMeetJS.analytics.sendEvent('toolbar.invite.close'); + sendEvent('toolbar.invite.close'); } /** diff --git a/react/features/remote-video-menu/components/KickButton.js b/react/features/remote-video-menu/components/KickButton.js index e375880d5..b626b1469 100644 --- a/react/features/remote-video-menu/components/KickButton.js +++ b/react/features/remote-video-menu/components/KickButton.js @@ -2,8 +2,8 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; +import { sendEvent } from '../../analytics'; import { translate } from '../../base/i18n'; -import JitsiMeetJS from '../../base/lib-jitsi-meet'; import { kickParticipant } from '../../base/participants'; import RemoteVideoMenuButton from './RemoteVideoMenuButton'; @@ -83,7 +83,7 @@ class KickButton extends Component { _onClick() { const { dispatch, onClick, participantID } = this.props; - JitsiMeetJS.analytics.sendEvent( + sendEvent( 'remotevideomenu.kick', { value: 1, diff --git a/react/features/remote-video-menu/components/MuteButton.js b/react/features/remote-video-menu/components/MuteButton.js index 36b43bd6e..0b36df352 100644 --- a/react/features/remote-video-menu/components/MuteButton.js +++ b/react/features/remote-video-menu/components/MuteButton.js @@ -2,8 +2,8 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; +import { sendEvent } from '../../analytics'; import { translate } from '../../base/i18n'; -import JitsiMeetJS from '../../base/lib-jitsi-meet'; import { muteRemoteParticipant } from '../../base/participants'; import RemoteVideoMenuButton from './RemoteVideoMenuButton'; @@ -97,7 +97,7 @@ class MuteButton extends Component { _onClick() { const { dispatch, onClick, participantID } = this.props; - JitsiMeetJS.analytics.sendEvent( + sendEvent( 'remotevideomenu.mute', { value: 1, diff --git a/react/features/remote-video-menu/components/RemoteControlButton.js b/react/features/remote-video-menu/components/RemoteControlButton.js index d7e20af9f..2a8785475 100644 --- a/react/features/remote-video-menu/components/RemoteControlButton.js +++ b/react/features/remote-video-menu/components/RemoteControlButton.js @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; -import JitsiMeetJS from '../../base/lib-jitsi-meet'; +import { sendEvent } from '../../analytics'; import { translate } from '../../base/i18n'; import RemoteVideoMenuButton from './RemoteVideoMenuButton'; @@ -130,7 +130,7 @@ class RemoteControlButton extends Component { } if (eventName) { - JitsiMeetJS.analytics.sendEvent( + sendEvent( `remotevideomenu.remotecontrol.${eventName}`, { value: 1, diff --git a/react/features/toolbox/components/ProfileButton.web.js b/react/features/toolbox/components/ProfileButton.web.js index 9bf38a302..68af7c6db 100644 --- a/react/features/toolbox/components/ProfileButton.web.js +++ b/react/features/toolbox/components/ProfileButton.web.js @@ -4,13 +4,13 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; +import { sendEvent } from '../../analytics'; import { DEFAULT_AVATAR_RELATIVE_PATH } from '../../base/participants'; import UIEvents from '../../../../service/UI/UIEvents'; import ToolbarButton from './ToolbarButton'; declare var APP: Object; -declare var JitsiMeetJS: Object; /** * The default configuration for the button. @@ -102,7 +102,7 @@ class ProfileButton extends Component { */ _onClick() { if (!this.props._unclickable) { - JitsiMeetJS.analytics.sendEvent('toolbar.profile.toggled'); + sendEvent('toolbar.profile.toggled'); APP.UI.emitEvent(UIEvents.TOGGLE_PROFILE); } } diff --git a/react/features/toolbox/defaultToolbarButtons.web.js b/react/features/toolbox/defaultToolbarButtons.web.js index 453ddc78a..f4957b95f 100644 --- a/react/features/toolbox/defaultToolbarButtons.web.js +++ b/react/features/toolbox/defaultToolbarButtons.web.js @@ -2,6 +2,7 @@ import React from 'react'; +import { sendEvent } from '../analytics'; import { ParticipantCounter } from '../contact-list'; import { openDeviceSelectionDialog } from '../device-selection'; import { InfoDialogButton, openInviteDialog } from '../invite'; @@ -12,7 +13,6 @@ import ProfileButton from './components/ProfileButton'; declare var APP: Object; declare var interfaceConfig: Object; -declare var JitsiMeetJS: Object; /** * The cache of {@link getDefaultButtons()}. @@ -42,9 +42,9 @@ export default function getDefaultButtons() { const newVideoMutedState = !APP.conference.isLocalVideoMuted(); if (newVideoMutedState) { - JitsiMeetJS.analytics.sendEvent('toolbar.video.enabled'); + sendEvent('toolbar.video.enabled'); } else { - JitsiMeetJS.analytics.sendEvent('toolbar.video.disabled'); + sendEvent('toolbar.video.disabled'); } APP.UI.emitEvent(UIEvents.VIDEO_MUTED, newVideoMutedState); }, @@ -64,7 +64,7 @@ export default function getDefaultButtons() { return; } - JitsiMeetJS.analytics.sendEvent('shortcut.videomute.toggled'); + sendEvent('shortcut.videomute.toggled'); APP.conference.toggleVideoMuted(); }, shortcutDescription: 'keyboardShortcuts.videoMute', @@ -81,13 +81,13 @@ export default function getDefaultButtons() { , id: 'toolbar_button_chat', onClick() { - JitsiMeetJS.analytics.sendEvent('toolbar.chat.toggled'); + sendEvent('toolbar.chat.toggled'); APP.UI.emitEvent(UIEvents.TOGGLE_CHAT); }, shortcut: 'C', shortcutAttr: 'toggleChatPopover', shortcutFunc() { - JitsiMeetJS.analytics.sendEvent('shortcut.chat.toggled'); + sendEvent('shortcut.chat.toggled'); APP.UI.toggleChat(); }, shortcutDescription: 'keyboardShortcuts.toggleChat', @@ -104,7 +104,7 @@ export default function getDefaultButtons() { enabled: true, id: 'toolbar_contact_list', onClick() { - JitsiMeetJS.analytics.sendEvent( + sendEvent( 'toolbar.contacts.toggled'); APP.UI.emitEvent(UIEvents.TOGGLE_CONTACT_LIST); }, @@ -121,9 +121,9 @@ export default function getDefaultButtons() { id: 'toolbar_button_desktopsharing', onClick() { if (APP.conference.isSharingScreen) { - JitsiMeetJS.analytics.sendEvent('toolbar.screen.disabled'); + sendEvent('toolbar.screen.disabled'); } else { - JitsiMeetJS.analytics.sendEvent('toolbar.screen.enabled'); + sendEvent('toolbar.screen.enabled'); } APP.UI.emitEvent(UIEvents.TOGGLE_SCREENSHARING); }, @@ -137,7 +137,7 @@ export default function getDefaultButtons() { shortcut: 'D', shortcutAttr: 'toggleDesktopSharingPopover', shortcutFunc() { - JitsiMeetJS.analytics.sendEvent('shortcut.screen.toggled'); + sendEvent('shortcut.screen.toggled'); // eslint-disable-next-line no-empty-function APP.conference.toggleScreenSharing().catch(() => {}); @@ -157,7 +157,7 @@ export default function getDefaultButtons() { }, id: 'toolbar_button_fodeviceselection', onClick(dispatch: Function) { - JitsiMeetJS.analytics.sendEvent( + sendEvent( 'toolbar.fodeviceselection.toggled'); dispatch(openDeviceSelectionDialog()); @@ -177,7 +177,7 @@ export default function getDefaultButtons() { hidden: true, id: 'toolbar_button_dialpad', onClick() { - JitsiMeetJS.analytics.sendEvent('toolbar.sip.dialpad.clicked'); + sendEvent('toolbar.sip.dialpad.clicked'); }, tooltipKey: 'toolbar.dialpad' }, @@ -191,7 +191,7 @@ export default function getDefaultButtons() { hidden: true, id: 'toolbar_button_etherpad', onClick() { - JitsiMeetJS.analytics.sendEvent('toolbar.etherpad.clicked'); + sendEvent('toolbar.etherpad.clicked'); APP.UI.emitEvent(UIEvents.ETHERPAD_CLICKED); }, tooltipKey: 'toolbar.etherpad' @@ -205,7 +205,7 @@ export default function getDefaultButtons() { enabled: true, id: 'toolbar_button_fullScreen', onClick() { - JitsiMeetJS.analytics.sendEvent('toolbar.fullscreen.enabled'); + sendEvent('toolbar.fullscreen.enabled'); APP.UI.emitEvent(UIEvents.TOGGLE_FULLSCREEN); }, @@ -213,7 +213,7 @@ export default function getDefaultButtons() { shortcutAttr: 'toggleFullscreenPopover', shortcutDescription: 'keyboardShortcuts.fullScreen', shortcutFunc() { - JitsiMeetJS.analytics.sendEvent('shortcut.fullscreen.toggled'); + sendEvent('shortcut.fullscreen.toggled'); APP.UI.toggleFullScreen(); }, tooltipKey: 'toolbar.fullscreen' @@ -229,7 +229,7 @@ export default function getDefaultButtons() { isDisplayed: () => true, id: 'toolbar_button_hangup', onClick() { - JitsiMeetJS.analytics.sendEvent('toolbar.hangup'); + sendEvent('toolbar.hangup'); APP.UI.emitEvent(UIEvents.HANGUP); }, tooltipKey: 'toolbar.hangup' @@ -252,7 +252,7 @@ export default function getDefaultButtons() { enabled: true, id: 'toolbar_button_link', onClick(dispatch: Function) { - JitsiMeetJS.analytics.sendEvent('toolbar.invite.clicked'); + sendEvent('toolbar.invite.clicked'); dispatch(openInviteDialog()); }, @@ -280,12 +280,11 @@ export default function getDefaultButtons() { APP.UI.showCustomToolbarPopup( 'microphone', 'unableToUnmutePopup', true, 5000); } else { - JitsiMeetJS.analytics - .sendEvent('toolbar.audio.unmuted'); + sendEvent('toolbar.audio.unmuted'); APP.UI.emitEvent(UIEvents.AUDIO_MUTED, false, true); } } else { - JitsiMeetJS.analytics.sendEvent('toolbar.audio.muted'); + sendEvent('toolbar.audio.muted'); APP.UI.emitEvent(UIEvents.AUDIO_MUTED, true, true); } }, @@ -306,7 +305,7 @@ export default function getDefaultButtons() { shortcut: 'M', shortcutAttr: 'mutePopover', shortcutFunc() { - JitsiMeetJS.analytics.sendEvent('shortcut.audiomute.toggled'); + sendEvent('shortcut.audiomute.toggled'); APP.conference.toggleAudioMuted(); }, shortcutDescription: 'keyboardShortcuts.mute', @@ -329,14 +328,14 @@ export default function getDefaultButtons() { enabled: true, id: 'toolbar_button_raisehand', onClick() { - JitsiMeetJS.analytics.sendEvent('toolbar.raiseHand.clicked'); + sendEvent('toolbar.raiseHand.clicked'); APP.conference.maybeToggleRaisedHand(); }, shortcut: 'R', shortcutAttr: 'raiseHandPopover', shortcutDescription: 'keyboardShortcuts.raiseHand', shortcutFunc() { - JitsiMeetJS.analytics.sendEvent('shortcut.raisehand.clicked'); + sendEvent('shortcut.raisehand.clicked'); APP.conference.maybeToggleRaisedHand(); }, tooltipKey: 'toolbar.raiseHand' @@ -364,7 +363,7 @@ export default function getDefaultButtons() { enabled: true, id: 'toolbar_button_settings', onClick() { - JitsiMeetJS.analytics.sendEvent('toolbar.settings.toggled'); + sendEvent('toolbar.settings.toggled'); APP.UI.emitEvent(UIEvents.TOGGLE_SETTINGS); }, sideContainerId: 'settings_container', @@ -379,7 +378,7 @@ export default function getDefaultButtons() { enabled: true, id: 'toolbar_button_sharedvideo', onClick() { - JitsiMeetJS.analytics.sendEvent('toolbar.sharedvideo.clicked'); + sendEvent('toolbar.sharedvideo.clicked'); APP.UI.emitEvent(UIEvents.SHARED_VIDEO_CLICKED); }, popups: [