@theoplayer/react-native-analytics-comscore
Version:
Comscore analytics connector for @theoplayer/react-native
39 lines (38 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useComscore = useComscore;
var _reactNativeTheoplayer = require("react-native-theoplayer");
var _react = require("react");
var _reactNativeAnalyticsComscore = require("@theoplayer/react-native-analytics-comscore");
function useComscore(metadata, config) {
const connector = (0, _react.useRef)(undefined);
const theoPlayer = (0, _react.useRef)(undefined);
const initialize = player => {
// Optionally destroy existent connector
onDestroy();
theoPlayer.current = player;
if (player) {
connector.current = new _reactNativeAnalyticsComscore.ComscoreConnector(player, metadata, config);
player.addEventListener(_reactNativeTheoplayer.PlayerEventType.DESTROY, onDestroy);
} else {
throw new Error('Invalid THEOplayer instance');
}
};
const onDestroy = () => {
if (connector.current) {
if (!theoPlayer.current) {
throw new Error('Invalid THEOplayer instance');
}
theoPlayer.current.removeEventListener(_reactNativeTheoplayer.PlayerEventType.DESTROY, onDestroy);
connector.current.destroy();
connector.current = undefined;
}
};
(0, _react.useEffect)(() => {
return onDestroy;
}, []);
return [connector, initialize];
}
//# sourceMappingURL=useComscore.js.map