/************************************************************************ 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 , 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 INTELECTUAL PROPERTY OF AYUSHYA AMITABH, AND MAY NOT BE COPIED, EDITED, OR REPRODUCED WITHOUT PERMISSION. ************************************************************************/ import React, { useState, useEffect } from 'react'; import Router from 'route-lite'; import { Fab, createMuiTheme, ThemeProvider, Snackbar, Tooltip } from '@material-ui/core'; import Create from './Create'; import Loading from './Loading'; import firebase from 'firebase/app'; import 'firebase/firestore'; import Inactive from './Inactive'; import { getUserUid, getPlayerSource, PLAYER_SOURCE, getShowWPButton, getTutorialStatus, } from './Api'; import Tutorial from './Tutorial'; const APP_VERSION = '1.7.0'; const APP_VERSION_STRING = APP_VERSION.replace(/\./g, ''); const darkTheme = createMuiTheme({ palette: { type: 'dark', primary: { main: '#FF0000', }, secondary: { main: '#beff94', }, }, }); const Routes = (props) => ( ); const resetResize = () => { const checkedX = 425; document.documentElement.style.setProperty('--party-width', `${checkedX}px`); document.documentElement.style.setProperty('--neg-party-width', `-${checkedX}px`); }; const doResize = (ev) => { const checkedX = window.innerWidth - Math.min(window.innerWidth - 300, Math.max(window.innerWidth * 0.5, ev.clientX)); document.documentElement.style.setProperty('--party-width', `${checkedX}px`); document.documentElement.style.setProperty('--neg-party-width', `-${checkedX}px`); }; const stopResize = (ev) => { document.documentElement.removeEventListener('mousemove', doResize, false); document.documentElement.removeEventListener('mouseup', stopResize, false); }; const startResize = (ev) => { ev.preventDefault(); ev.stopPropagation(); document.documentElement.addEventListener('mousemove', doResize, false); document.documentElement.addEventListener('mouseup', stopResize, false); }; const App = () => { const closedNotification = { open: false, message: '' }; const [tutorialComponent, setTutorialComponent] = useState(null); const [showFab, setShowFab] = useState(false); const [tutorialComplete, setTutorialComplete] = useState(false); const [status, setStatus] = useState({ active: false, message: '' }); const [visible, setVisible] = useState(false); const [loading, setLoading] = useState(false); const [notification, setNotification] = useState(closedNotification); let hasAttached = false; useEffect(() => { setLoading(true); getUserUid(); firebase .firestore() .collection('server') .doc('status') .onSnapshot((statusSnap) => { setStatus(statusSnap.data()); setLoading(false); }); getShowWPButton().then((showWPButton) => { setShowFab(showWPButton); if (showWPButton === true) { document.querySelector('.watch-party-fab').classList.remove('watch-party-fab-hidden'); } }); }, []); getTutorialStatus().then((v) => setTutorialComplete(v)); // HANDLE VISIBILITY STYLING const PartyRoutesWrapper = document.getElementById('party-routes-wrapper'); if (visible) { document.body.classList.add('visible'); PartyRoutesWrapper && PartyRoutesWrapper.classList.add('visible'); if (getPlayerSource() === PLAYER_SOURCE.APPLE) { const appleTvPlayer = document.querySelector('apple-tv-plus-player'); const takeoverContainer = appleTvPlayer.shadowRoot.querySelector('.takeover.container.show'); if (takeoverContainer) takeoverContainer.style.maxWidth = 'var(--body-width)'; } } else { if (getPlayerSource() === PLAYER_SOURCE.APPLE) { const appleTvPlayer = document.querySelector('apple-tv-plus-player'); const takeoverContainer = appleTvPlayer.shadowRoot.querySelector('.takeover.container.show'); if (takeoverContainer) takeoverContainer.style.maxWidth = 'none'; } document.body.classList.remove('visible'); PartyRoutesWrapper && PartyRoutesWrapper.classList.remove('visible'); } // HANDLE FULLSCREEN EVENT document.onfullscreenchange = () => { if (document.fullscreenElement) setVisible(false); }; const resetTutorial = (c = null) => { setTutorialComponent(c); setTutorialComplete(false); }; return ( setNotification(closedNotification)} message={notification.message} autoHideDuration={notification.timeout} />
||
{loading && } {status[APP_VERSION_STRING] && status[APP_VERSION_STRING].active === true ? ( setNotification({ open: true, message, timeout }) } appVersion={APP_VERSION} appVersionString={APP_VERSION_STRING} status={status[APP_VERSION_STRING]} selectors={status.selectors} nameSelectors={status.nameSelectors} setVisible={setVisible} /> ) : ( )}
setVisible(!visible)} className="watch-party-fab watch-party-fab-hidden" >
); }; export default App;