139 lines
4.0 KiB
JavaScript
139 lines
4.0 KiB
JavaScript
/************************************************************************
|
|
Copyright (C) Ayushya Amitabh - All Rights Reserved
|
|
Unauthorized copying of this file, via any medium is strictly prohibited
|
|
Proprietary and confidential
|
|
Written by Ayushya Amitabh <admin@chromewatchparty.com>, 2020
|
|
https://www.chromewatchparty.com/copyright
|
|
=========================================================================
|
|
ALL CONTENT ON WATCH PARTY'S WEBSITE OR IN WATCH PARTY'S CHROME EXTENSION APP, UNLESS OTHERWISE
|
|
CITED ARE THE SOLE INTELLECTUAL PROPERTY OF AYUSHYA AMITABH, AND MAY NOT BE
|
|
COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION.
|
|
************************************************************************/
|
|
import App from './App';
|
|
import React from 'react';
|
|
import ReactDOM from 'react-dom';
|
|
import { PLAYER_SOURCE, getPlayerSource } from './Api';
|
|
import './index.css';
|
|
import 'react-virtualized/styles.css';
|
|
|
|
const PartyWrapper = document.createElement('div');
|
|
PartyWrapper.id = 'party_wrapper';
|
|
document.body.appendChild(PartyWrapper);
|
|
|
|
document.addEventListener(
|
|
'keydown',
|
|
(ev) => {
|
|
if (ev.code === 'KeyF') {
|
|
if (ev.target.tagName !== 'INPUT' && ev.target.tagName !== 'TEXTAREA') {
|
|
ev.stopImmediatePropagation();
|
|
ev.stopPropagation();
|
|
}
|
|
}
|
|
},
|
|
{ capture: true }
|
|
);
|
|
|
|
switch (getPlayerSource()) {
|
|
case PLAYER_SOURCE.NETFLIX:
|
|
document.body.classList.add('netflix');
|
|
break;
|
|
case PLAYER_SOURCE.HULU:
|
|
document.addEventListener(
|
|
'keydown',
|
|
(ev) => {
|
|
if (ev.target.tagName !== 'INPUT' || ev.target.tagName !== 'TEXTAREA') {
|
|
ev.stopImmediatePropagation();
|
|
ev.stopPropagation();
|
|
} else {
|
|
ev.target.focus();
|
|
}
|
|
},
|
|
{ capture: true }
|
|
);
|
|
document.body.classList.add('hulu');
|
|
break;
|
|
case PLAYER_SOURCE.AMAZON:
|
|
document.body.classList.add('amazon-prime');
|
|
break;
|
|
case PLAYER_SOURCE.DISNEY:
|
|
document.body.classList.add('disney');
|
|
break;
|
|
case PLAYER_SOURCE.YOUTUBE:
|
|
document.body.classList.add('youtube');
|
|
break;
|
|
case PLAYER_SOURCE.HBONOW:
|
|
case PLAYER_SOURCE.HBOMAX:
|
|
document.body.classList.add('hbo');
|
|
window.addEventListener(
|
|
'mousedown',
|
|
(ev) => {
|
|
const partyWrapper = document.querySelector('#party_wrapper');
|
|
const tutorialWrapper = document.querySelector('.watch-party-tutorial');
|
|
if (
|
|
(partyWrapper && partyWrapper.contains(ev.target)) ||
|
|
(tutorialWrapper && tutorialWrapper.contains(ev.target))
|
|
) {
|
|
if (ev.target.id !== 'party-width-dragger') {
|
|
ev.stopImmediatePropagation();
|
|
ev.preventDefault();
|
|
}
|
|
if (ev.target.tagName === 'INPUT' || ev.target.tagName === 'TEXTAREA') {
|
|
ev.target.focus();
|
|
}
|
|
}
|
|
},
|
|
{ capture: true }
|
|
);
|
|
window.addEventListener(
|
|
'keydown',
|
|
(ev) => {
|
|
if (ev.target.tagName === 'INPUT' || ev.target.tagName === 'TEXTAREA') {
|
|
ev.target.focus();
|
|
}
|
|
ev.stopImmediatePropagation();
|
|
ev.stopPropagation();
|
|
},
|
|
{ capture: true }
|
|
);
|
|
break;
|
|
case PLAYER_SOURCE.PEACOCK:
|
|
document.body.classList.add('peacock');
|
|
break;
|
|
case PLAYER_SOURCE.GOOGLEPLAY:
|
|
document.body.classList.add('googleplay');
|
|
break;
|
|
case PLAYER_SOURCE.CRUNCHYROLL:
|
|
document.body.classList.add('crunchyroll');
|
|
break;
|
|
case PLAYER_SOURCE.APPLE:
|
|
document.body.classList.add('apple');
|
|
break;
|
|
case PLAYER_SOURCE.VIKI:
|
|
document.body.classList.add('viki');
|
|
break;
|
|
case PLAYER_SOURCE.FUNIMATION:
|
|
document.body.classList.add('funimation');
|
|
break;
|
|
case PLAYER_SOURCE.ROOSTERTEETH:
|
|
document.body.classList.add('roosterteeth');
|
|
break;
|
|
case PLAYER_SOURCE.STAN:
|
|
document.body.classList.add('stan');
|
|
break;
|
|
case PLAYER_SOURCE.HOTSTAR:
|
|
document.body.classList.add('hotstar');
|
|
break;
|
|
case PLAYER_SOURCE.LOCAL:
|
|
document.body.classList.add('local');
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
ReactDOM.render(
|
|
<React.StrictMode>
|
|
<App />
|
|
</React.StrictMode>,
|
|
PartyWrapper
|
|
);
|