/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable jsx-a11y/click-events-have-key-events */ /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ /* eslint-disable jsx-a11y/alt-text */ import React, { useEffect, useState, useCallback } from 'react'; import { Card, H4, Icon } from '@blueprintjs/core'; import { createStyles, makeStyles } from '@material-ui/core/styles'; import { Row, Col } from 'react-flexbox-grid'; import isProduction from '../../../utils/isProduction'; const Fade = require('react-reveal/Fade'); const useStyles = makeStyles(() => createStyles({ root: { display: 'flex', flexWrap: 'wrap', justifyContent: 'space-around', overflow: 'hidden', }, gridList: { width: 500, height: 450, }, icon: { color: 'rgba(255, 255, 255, 0.54)', }, previewShareThumbContainer: { marginBottom: '20px', '&:hover': { backgroundColor: 'rgba(19, 124, 189, 0.4)', }, }, }) ); export default function PreviewGridList(props: any) { const classes = useStyles(); const [showPreviewNamesMap, setShowPreviewNamesMap] = useState(new Map()); useEffect(() => { const map = new Map(); props.screenSharingObjects.forEach((el: { id: string }) => { map.set(el.id, false); }); setShowPreviewNamesMap(map); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); const onPreviewMouseEnter = useCallback( (id) => { const newShowPreviewNamesMap = new Map(showPreviewNamesMap); [...newShowPreviewNamesMap.keys()].forEach((key) => { newShowPreviewNamesMap.set(key, false); }); newShowPreviewNamesMap.set(id, true); setShowPreviewNamesMap(newShowPreviewNamesMap); }, [showPreviewNamesMap, setShowPreviewNamesMap] ); const onPreviewMouseLeave = useCallback(() => { const newShowPreviewNamesMap = new Map(showPreviewNamesMap); [...newShowPreviewNamesMap.keys()].forEach((key) => { newShowPreviewNamesMap.set(key, false); }); setShowPreviewNamesMap(newShowPreviewNamesMap); }, [showPreviewNamesMap, setShowPreviewNamesMap]); return (
{[...showPreviewNamesMap.keys()].map((id) => { return ( { if (props.isEntireScreen) { props.handleNextEntireScreen(); } else { props.handleNextApplicationWindow(); } }} onMouseEnter={() => onPreviewMouseEnter(id)} onMouseLeave={() => onPreviewMouseLeave()} >

Preview Name

); })}
); }