/** * Intro */ import React, { useState, useCallback } from "react"; import Vimeo from "@u-wave/react-vimeo"; import { footprint } from "../utils/shoelace.js"; 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(() => { try { audio.play(); } catch (error) { console.error(error); } setDone(true); setTimeout(() => { onComplete(); }, 200); footprint("escape"); }, []); const handleEnd = useCallback(() => { try { audio.play(); } catch (error) { console.error(error); } setDone(true); setTimeout(() => { onComplete(); }, 200); footprint("egress"); }, []); const handleStart = useCallback(() => { playing = true; try { audio.play(); } catch (error) { console.error(error); } setStarted(true); if (player) { player.play(); } footprint("ingress"); }, [player]); const handleReady = useCallback((player) => { setPlayer(player); if (playing) { player.play(); setStarted(true); } }); return (