export default function (playerInstance, options) {
playerInstance.suggestedVideosGrid = null;
playerInstance.generateSuggestedVideoList = () => {
const configUrl = playerInstance.displayOptions.suggestedVideos.configUrl;
if (!configUrl) {
return;
}
playerInstance.sendRequestAsync(configUrl, false, 5000).then(({response}) => {
const config = JSON.parse(response);
const suggestedVideosGrid = playerInstance.generateSuggestedVideoGrid(config);
playerInstance.suggestedVideosGrid = suggestedVideosGrid;
}).catch(err => {
console.error('[FP_ERROR] given suggested videos config url is invalid or not found.', err);
})
};
playerInstance.generateSuggestedVideoGrid = (config) => {
const suggestedVideosGrid = document.createElement('div');
suggestedVideosGrid.className = 'suggested_tile_grid';
for (let i = 0; i < 12; i++) {
const videoTile = playerInstance.createVideoTile(config[i]);
suggestedVideosGrid.appendChild(videoTile);
}
return suggestedVideosGrid;
};
playerInstance.displaySuggestedVideos = () => {
const PlayerDOM = playerInstance.domRef.wrapper;
PlayerDOM.appendChild(playerInstance.suggestedVideosGrid);
};
playerInstance.clickSuggestedVideo = (sources, subtitles, configUrl) => {
playerInstance.toggleLoader(true);
playerInstance.hideSuggestedVideos();
playerInstance.resetPlayer(sources, subtitles, configUrl);
playerInstance.generateSuggestedVideoList();
};
playerInstance.resetPlayer = (sources, subtitles, configUrl) => {
const videoDOM = playerInstance.domRef.wrapper.querySelector(`#${playerInstance.videoPlayerId}`);
videoDOM.innerHTML = '';
let sourcesHTML = '';
if (sources) {
sources.forEach(source => {
sourcesHTML += ``;
});
}
if (subtitles) {
subtitles.forEach(subtitle => {
sourcesHTML += `