import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import styles from "./HomeMenu.module.css"; import appStyles from "./AppList.module.css"; import taskbarStyles from "../Taskbar.module.css"; import { faCircleInfo, faFileLines, faGear, faImage, faPowerOff } from "@fortawesome/free-solid-svg-icons"; import { useWindowsManager } from "../../../hooks/windows/windowsManagerContext"; import { AppsManager } from "../../../features/apps/appsManager"; import { ReactSVG } from "react-svg"; import { closeViewport } from "../../../features/_utils/browser.utils"; import { useKeyboardListener } from "../../../hooks/_utils/keyboard"; import { useVirtualRoot } from "../../../hooks/virtual-drive/virtualRootContext"; import { useEffect, useState } from "react"; import { Vector2 } from "../../../features/math/vector2"; import utilStyles from "../../../styles/utils.module.css"; import { APPS } from "../../../config/apps.config"; import { NAME } from "../../../config/branding.config"; interface HomeMenuProps { active: boolean; setActive: Function; search: Function; } export function HomeMenu({ active, setActive, search }: HomeMenuProps) { const windowsManager = useWindowsManager(); const virtualRoot = useVirtualRoot(); const [tabIndex, setTabIndex] = useState(active ? 0 : -1); useEffect(() => { setTabIndex(active ? 0 : -1); }, [active]); const classNames = [styles.HomeMenuContainer, taskbarStyles.MenuContainer]; if (active) classNames.push(taskbarStyles.Active); let onlyAltKey = false; const onKeyDown = (event: KeyboardEvent) => { if (event.key === "Alt") { event.preventDefault(); onlyAltKey = true; } else { onlyAltKey = false; if (active && event.key.length === 1) { search(event.key); } } }; const onKeyUp = (event: KeyboardEvent) => { if (event.key === "Alt" && onlyAltKey) { event.preventDefault(); setActive(!active); onlyAltKey = false; } else { onlyAltKey = false; } }; useKeyboardListener({ onKeyDown, onKeyUp }); return (