/************************************************************************ 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 - 2022 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. ************************************************************************/ /*global chrome*/ /*global browser*/ 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 Inactive from "./Inactive"; import { getUserUid, getShowWPButton, getTutorialStatus, UpdateDailymotionVariables, } from "./Api"; import Tutorial from "./Tutorial"; const APP_VERSION = "1.7.17"; 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` ); UpdateDailymotionVariables(); }; 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); UpdateDailymotionVariables(); }; const startResize = (ev) => { ev.preventDefault(); ev.stopPropagation(); document.documentElement.addEventListener("mousemove", doResize, false); document.documentElement.addEventListener("mouseup", stopResize, false); }; let CHROME_OR_BROWSER = chrome || browser; let port; 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); useEffect(() => { setLoading(true); getUserUid(); port = CHROME_OR_BROWSER.runtime.connect({ name: `WATCH_PARTY_STATUS` }); port.postMessage({ type: "STATUS", }); port.onMessage.addListener((response) => { setStatus(response.status); setLoading(false); }); getShowWPButton().then((showWPButton) => { setShowFab(showWPButton); if (showWPButton === true) { document .querySelector(".watch-party-fab") .classList.remove("watch-party-fab-hidden"); document.querySelector( ".watch-party-fab" ).style.backgroundImage = `url("${CHROME_OR_BROWSER.extension.getURL( "wp192.png" )}")`; } }); }, []); 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"); } else { 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); }; UpdateDailymotionVariables(); const versionStatusKey = Object.keys(status).filter( (key) => status[key].v === APP_VERSION )[0]; var versionStatus = {}; if (versionStatusKey) { versionStatus = status[versionStatusKey]; } return ( setNotification(closedNotification)} message={notification.message} autoHideDuration={notification.timeout} />
||
{loading && } {versionStatus && versionStatus.active === true ? ( setNotification({ open: true, message, timeout }) } appVersion={APP_VERSION} status={versionStatus} selectors={status.selectors} nameSelectors={status.nameSelectors} setVisible={setVisible} visible={visible} /> ) : ( )}
setVisible(!visible)} className="watch-party-fab watch-party-fab-hidden" >
); }; export default App;