-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCard.jsx
32 lines (30 loc) · 1.09 KB
/
Card.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { IMAGE_URL_SMALL } from "../utils/Constans";
import { createPortal } from "react-dom";
import HoveredModal from "./HoveredModal";
import { useHover } from "../hooks/useHover";
import { LazyLoadImage } from "react-lazy-load-image-component";
function Card({ movie,innerRef,mute }) {
//state to show popup on hover and play the video after a while
const {onHover,setIsHovered,image,video,positionX,positionY,ref,isHovered}=useHover(movie)
if(!movie.backdrop_path) return null
return (
<div
ref={ref}
className="relative shadow-2xl w-[18rem] md:w-[20rem] mt-4 "
onMouseEnter={() => onHover()}
onMouseLeave={() => setIsHovered(false)}
>
<img ref={innerRef}
className=" duration-150 rounded-lg "
src={`${IMAGE_URL_SMALL}${movie.backdrop_path}`}
alt=""
/>
{isHovered &&
createPortal(
<HoveredModal image={image} video={video} movie={movie} mute={mute} positionX={positionX} positionY={positionY}/>,
document.body
)}
</div>
);
}
export default Card;