/** * Intro */ import React, { useState, useCallback } from "react"; import Vimeo from "@u-wave/react-vimeo"; let playing = false; const audio = document.createElement("audio"); audio.loop = true; audio.volume = 0.25; audio.src = "assets/data_store/X4LM-10m-192k.mp3"; export default function Intro({ onComplete }) { const [done, setDone] = useState(false); const [started, setStarted] = useState(false); const [player, setPlayer] = useState(false); const [videoSize] = useState(coverWindow()); const handleClose = useCallback(() => { audio.play(); setDone(true); setTimeout(() => { onComplete(); }, 200); }, []); const handleStart = useCallback(() => { playing = true; setStarted(true); if (player) { player.play(); } }, [player]); const handleReady = useCallback((player) => { setPlayer(player); if (playing) { player.play(); setStarted(true); } }); return (
{started && ( )}
); } const coverWindow = () => { const videoRatio = 1.777; const screenRatio = window.innerWidth / window.innerHeight; if (screenRatio > videoRatio) { return { width: "100vw", height: 100 * 1.777 + "vh" }; } else { return { width: "177vh", height: "100vh" }; } };