import { cx } from "@/cva.config"; import { useHidStore, useMouseStore, useRTCStore, useSettingsStore, useVideoStore, } from "@/hooks/stores"; import { useEffect } from "react"; import { keys, modifiers } from "@/keyboardMappings"; export default function InfoBar() { const activeKeys = useHidStore(state => state.activeKeys); const activeModifiers = useHidStore(state => state.activeModifiers); const mouseX = useMouseStore(state => state.mouseX); const mouseY = useMouseStore(state => state.mouseY); const videoClientSize = useVideoStore( state => `${Math.round(state.clientWidth)}x${Math.round(state.clientHeight)}`, ); const videoSize = useVideoStore( state => `${Math.round(state.width)}x${Math.round(state.height)}`, ); const rpcDataChannel = useRTCStore(state => state.rpcDataChannel); const settings = useSettingsStore(); useEffect(() => { if (!rpcDataChannel) return; rpcDataChannel.onclose = () => console.log("rpcDataChannel has closed"); rpcDataChannel.onerror = e => console.log(`Error on DataChannel '${rpcDataChannel.label}': ${e}`); }, [rpcDataChannel]); const isCapsLockActive = useHidStore(state => state.isCapsLockActive); const isNumLockActive = useHidStore(state => state.isNumLockActive); const isScrollLockActive = useHidStore(state => state.isScrollLockActive); const isTurnServerInUse = useRTCStore(state => state.isTurnServerInUse); const usbState = useHidStore(state => state.usbState); const hdmiState = useVideoStore(state => state.hdmiState); return (