import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import styles from "./HomeMenu.module.css"; import appStyles from "./AppList.module.css"; import { faCircleInfo, faFileLines, faGear, faImage, faPowerOff } from "@fortawesome/free-solid-svg-icons"; import { useWindowsManager } from "../../../hooks/windows/WindowsManagerContext.js"; import ApplicationsManager from "../../../features/applications/applications.js"; import { ReactSVG } from "react-svg"; import { closeTab } from "../../../features/utils/browser.js"; import { useKeyboardListener } from "../../../hooks/utils/keyboard.js"; import { useVirtualRoot } from "../../../hooks/virtual-drive/VirtualRootContext.js"; import { useEffect, useState } from "react"; import Vector2 from "../../../features/math/vector2.js"; import utilStyles from "../../../styles/utils.module.css"; /** * @param {object} props * @param {boolean} props.active * @param {Function} props.setActive * @param {Function} props.search */ export function HomeMenu({ active, setActive, search }) { const windowsManager = useWindowsManager(); const virtualRoot = useVirtualRoot(); const [tabIndex, setTabIndex] = useState(active ? 0 : -1); useEffect(() => { setTabIndex(active ? 0 : -1); }, [active]); const classNames = [styles["Container-outer"]]; if (active) classNames.push(styles.Active); let onlyAltKey = false; const onKeyDown = (event) => { if (event.key === "Alt") { event.preventDefault(); onlyAltKey = true; } else { onlyAltKey = false; if (active && event.key.length === 1) { search(event.key); } } }; const onKeyUp = (event) => { if (event.key === "Alt" && onlyAltKey) { event.preventDefault(); setActive(!active); onlyAltKey = false; } else { onlyAltKey = false; } }; useKeyboardListener({ onKeyDown, onKeyUp }); return (