/* eslint-disable @typescript-eslint/ban-ts-comment */ import { clipboard, remote } from 'electron'; import React, { useContext, useEffect, useState } from 'react'; import { Button, Text, Tooltip, Position, H2, Dialog } from '@blueprintjs/core'; import QRCode from 'qrcode.react'; import { makeStyles, createStyles } from '@material-ui/core'; import { Row, Col } from 'react-flexbox-grid'; import { SettingsContext } from '../../containers/SettingsProvider'; import isProduction from '../../utils/isProduction'; import CloseOverlayButton from '../CloseOverlayButton'; import SharingSessionService from '../../features/SharingSessionsService'; const sharingSessionService = remote.getGlobal( 'sharingSessionService' ) as SharingSessionService; const LOCAL_LAN_IP = process.env.RUN_MODE === 'dev' || process.env.NODE_ENV === 'production' ? require('internal-ip').v4.sync() : '255.255.255.255'; // TODO: change 3131 to user defined port, if it is really defined const CLIENT_VIEWER_PORT = isProduction() ? '3131' : '3000'; const useStyles = makeStyles(() => createStyles({ smallQRCode: { border: '1px solid', borderColor: 'rgba(0,0,0,0.0)', padding: '10px', borderRadius: '10px', '&:hover': { backgroundColor: 'rgba(0,0,0,0.12)', border: '1px solid #8A9BA8', cursor: 'zoom-in', }, }, dialogQRWrapper: { backgroundColor: 'white', padding: '20px', borderRadius: '10px', }, bigQRCodeDialogRoot: { '&:hover': { cursor: 'zoom-out', }, }, }) ); const ScanQRStep: React.FC = () => { const classes = useStyles(); const { isDarkTheme } = useContext(SettingsContext); const [roomID, setRoomID] = useState(''); useEffect(() => { const thisInterval = setInterval(() => { if (sharingSessionService.waitingForConnectionSharingSession !== null) { setRoomID( sharingSessionService.waitingForConnectionSharingSession.roomID ); } }, 1000); return () => { clearInterval(thisInterval); }; }, []); const [isQRCodeMagnified, setIsQRCodeMagnified] = useState(false); return ( <>