origin/apps/web/src/components/presentation/video-player/VideoPlayerLayout.tsx

35 lines
870 B
TypeScript
Raw Normal View History

2025-01-08 00:56:15 +08:00
import { useContext } from "react";
import { VideoPlayerContext } from "./VideoPlayer";
import Controls from "./VideoControls";
import { AnimatePresence } from "framer-motion";
import { VideoScreen } from "./VideoScreen";
import LoadingOverlay from "./LoadingOverlay";
export default function VideoPlayerLayout() {
const {
isReady,
setIsHovering,
setShowControls,
showControls,
isDragging,
} = useContext(VideoPlayerContext);
return (
<>
<div
className={`relative aspect-video w-full bg-black rounded-lg overflow-hidden`}
onMouseEnter={() => {
setIsHovering(true);
setShowControls(true);
}}>
{!isReady && <div>123</div>}
{!isReady && <LoadingOverlay></LoadingOverlay>}
<VideoScreen></VideoScreen>
<AnimatePresence>
{(showControls || isDragging) && <Controls />}
</AnimatePresence>
</div>
</>
);
}