// @flow // $FlowFixMe import { Global } from '@emotion/react'; import { Menu, MenuButton, MenuList, MenuItem } from '@reach/menu-button'; import { useHistory } from 'react-router-dom'; import { useIsMobile } from 'effects/use-screensize'; import usePersistedState from 'effects/use-persisted-state'; import * as ICONS from 'constants/icons'; import Icon from 'component/common/icon'; import React from 'react'; type Props = { isPopoutWindow?: boolean, superchatsHidden?: boolean, noSuperchats?: boolean, hideChat?: () => void, setPopoutWindow?: (any) => void, toggleSuperchats?: () => void, }; export default function LivestreamMenu(props: Props) { const { isPopoutWindow, superchatsHidden, noSuperchats, hideChat, setPopoutWindow, toggleSuperchats } = props; const { location: { pathname }, } = useHistory(); const isMobile = useIsMobile(); const [showTimestamps, setShowTimestamps] = usePersistedState('live-timestamps', false); function handlePopout() { if (setPopoutWindow) { const newWindow = window.open('/$/popout' + pathname, 'Popout Chat', 'height=700,width=400'); // Add function to newWindow when closed (either manually or from button component) newWindow.onbeforeunload = () => setPopoutWindow(undefined); if (window.focus) newWindow.focus(); setPopoutWindow(newWindow); } } const MenuGlobalStyles = () => ( ); return ( <> setShowTimestamps(!showTimestamps)}> {__('Toggle Timestamps')} {!isMobile ? ( <> {/* No need for Hide Chat on mobile with the expand/collapse drawer */} {__('Hide Chat')} {!isPopoutWindow && ( {__('Popout Chat')} )} ) : ( !noSuperchats && ( {superchatsHidden ? __('Display Superchats') : __('Dismiss Superchats')} ) )} ); }