import { SyntheticEvent, useCallback, useState } from 'react'; import { ASSETS_URL } from '../../consts/common'; import { useWindowEventListener } from '../../utils'; import { StyledBackdrop, StyledCloseIcon, StyledPopupWrapper, StyledYouTubePlayer, StyledYouTubePoster } from './styles'; import { EmptyStateYoutubeProps } from './types'; export const EmptyStateYoutube = (props: EmptyStateYoutubeProps) => { const { imageProps, imageUrl, isOpen = false, onClose, onOpen, ...youTubeProps } = props; const [open, setOpen] = useState(isOpen); const handleClose = useCallback>( event => { onClose?.(event); setOpen(false); }, [onClose] ); const handleOpen = useCallback>( event => { onOpen?.(event); setOpen(true); }, [onOpen] ); useWindowEventListener(['keydown'], event => { if (open && (event as KeyboardEvent)?.code === 'Escape') handleClose(event as unknown as SyntheticEvent); }); return ( <> {open && ( )} ); };