@atlaskit/analytics-listeners
Version:
Fabric analytics listeners to be used by the products
68 lines • 3.45 kB
JavaScript
import React from 'react';
import { FabricChannel } from './types';
import FabricElementsListener from './fabric/FabricElementsListener';
import AtlaskitListener from './atlaskit/AtlaskitListener';
import Logger from './helpers/logger';
import NavigationListener from './navigation/NavigationListener';
import FabricEditorListener from './fabric/FabricEditorListener';
import MediaAnalyticsListener from './media/MediaAnalyticsListener';
import PeopleTeamsAnalyticsListener from './peopleTeams/PeopleTeamsAnalyticsListener';
import NotificationsAnalyticsListener from './notifications/NotificationsAnalyticsListener';
import RecentWorkAnalyticsListener from './recentWork/RecentWorkAnalyticsListener';
import AtlasAnalyticsListener from './atlas/AtlasAnalyticsListener';
import CrossFlowAnalyticsListener from './cross-flow/CrossFlowAnalyticsListener';
import LinkingPlatformAnalyticsListener from './linkingPlatform/LinkingPlatformAnalyticsListener';
import PostOfficeAnalyticsListener from './postOffice/PostOfficeAnalyticsListener';
import AIMateAnalyticsListener from './aiMate/AIMateAnalyticsListener';
import AVPAnalyticsListener from './avp/AVPAnalyticsListener';
import GrowthAnalyticsListener from './growth/GrowthAnalyticsListener';
import OmniChannelAnalyticsListener from './omni-channel/OmniChannelAnalyticsListener';
import TownsquareHomeAnalyticsListener from './townsquareHome/TownsquareHomeAnalyticsListener';
import RovoExtensionAnalyticsListener from './rovoExtension/RovoExtensionAnalyticsListener';
import TeamworkGraphAnalyticsListener from './teamworkGraph/TeamworkGraphAnalyticsListener';
const listenerMap = {
[]: FabricElementsListener,
[]: FabricEditorListener,
[]: AtlaskitListener,
[]: NavigationListener,
[]: MediaAnalyticsListener,
[]: PeopleTeamsAnalyticsListener,
[]: NotificationsAnalyticsListener,
[]: RecentWorkAnalyticsListener,
[]: AtlasAnalyticsListener,
[]: CrossFlowAnalyticsListener,
[]: LinkingPlatformAnalyticsListener,
[]: PostOfficeAnalyticsListener,
[]: AIMateAnalyticsListener,
[]: AVPAnalyticsListener,
[]: GrowthAnalyticsListener,
[]: OmniChannelAnalyticsListener,
[]: TownsquareHomeAnalyticsListener,
[]: RovoExtensionAnalyticsListener,
[]: TeamworkGraphAnalyticsListener
};
class FabricAnalyticsListeners extends React.Component {
constructor(props) {
super(props);
this.logger = new Logger({
logLevel: props.logLevel
});
}
render() {
const {
client,
children,
logLevel,
excludedChannels
} = this.props;
if (typeof logLevel === 'number') {
this.logger.setLogLevel(logLevel);
}
const listeners = Object.keys(listenerMap).filter(channel => !excludedChannels || excludedChannels.indexOf(channel) < 0).map(channel => listenerMap[channel]).reduce((prev, Listener) => /*#__PURE__*/React.createElement(Listener, {
client: client,
logger: this.logger
}, prev), children);
return listeners;
}
}
export default FabricAnalyticsListeners;