import { ipcRenderer } from 'electron'; import React, { useCallback, useEffect, useState } from 'react'; import { H3, Card, Dialog, Button } from '@blueprintjs/core'; import { Row, Col } from 'react-flexbox-grid'; import { createStyles, makeStyles } from '@material-ui/core/styles'; import { useTranslation } from 'react-i18next'; import CloseOverlayButton from '../../CloseOverlayButton'; import PreviewGridList from './PreviewGridList'; import isWithReactRevealAnimations from '../../../utils/isWithReactRevealAnimations'; import { IpcEvents } from '../../../main/IpcEvents.enum'; const Zoom = require('react-reveal/Zoom'); const Fade = require('react-reveal/Fade'); const useStyles = makeStyles(() => createStyles({ dialogRoot: { width: '90%', height: '87vh !important', overflowY: 'scroll', }, closeButton: { position: 'relative', width: '40px', height: '40px', left: 'calc(100% - 55px)', borderRadius: '100px', zIndex: 9999, }, overlayInnerRoot: { width: '90%', height: '90%' }, sharePreviewsContainer: { top: '60px', position: 'relative', height: '100%', }, }) ); interface ChooseAppOrScreenOverlayProps { isEntireScreenToShareChosen: boolean; isChooseAppOrScreenOverlayOpen: boolean; handleNextEntireScreen: () => void; handleNextApplicationWindow: () => void; handleClose: () => void; } export default function ChooseAppOrScreenOverlay( props: ChooseAppOrScreenOverlayProps ) { const { t } = useTranslation(); const { handleClose, isChooseAppOrScreenOverlayOpen, isEntireScreenToShareChosen, handleNextEntireScreen, handleNextApplicationWindow, } = props; const classes = useStyles(); const [viewSharingIds, setViewSharingIds] = useState([]); const handleRefreshSources = useCallback(async () => { const ids = await ipcRenderer.invoke(IpcEvents.GetDesktopSharingSourceIds, { isEntireScreenToShareChosen, }); setViewSharingIds(ids); }, [isEntireScreenToShareChosen]); useEffect(() => { handleRefreshSources(); }, [handleRefreshSources, isEntireScreenToShareChosen]); return (
{isEntireScreenToShareChosen ? (

{t('Select Entire Screen to Share')}

) : (

{t('Select App Window to Share')}

)}
{ handleNextEntireScreen(); handleClose(); }} handleNextApplicationWindow={() => { handleNextApplicationWindow(); handleClose(); }} />
); }