import style from "./StudioClock.module.scss"; import useFitText from "use-fit-text"; import NavLogo from "../../../common/components/nav/NavLogo"; import {useEffect, useState} from "react"; import {formatDisplay} from "../../../common/utils/dateConfig"; import { formatEventList, getEventsWithDelay, trimEventlist } from "../../../common/utils/eventsManager"; export default function StudioClock(props) { const {title, time, backstageEvents, selectedId, nextId, onAir} = props; const {fontSize, ref} = useFitText({maxFontSize: 500}); const [, , secondsNow] = time.clock.split(':'); const [schedule, setSchedule] = useState([]); const activeIndicators = [...Array(12).keys()]; const secondsIndicators = [...Array(60).keys()]; const MAX_TITLES = 8; // Set window title useEffect(() => { document.title = 'ontime - Studio Clock'; }, []); // Prepare event list // Todo: useMemo() useEffect(() => { if (backstageEvents == null) return; const delayed = getEventsWithDelay(backstageEvents); const events = delayed.filter((e) => e.type === 'event'); const trimmed = trimEventlist(events, selectedId, MAX_TITLES); const formatted = formatEventList(trimmed, selectedId, nextId); setSchedule(formatted); }, [backstageEvents, selectedId, nextId]); return (