import { useEffect, useState } from "react"; import styles from "./Settings.module.css"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faHardDrive, faPalette } from "@fortawesome/free-solid-svg-icons"; import { useVirtualRoot } from "../../../hooks/virtual-drive/VirtualRootContext.js"; import { useSettings } from "../../../hooks/settings/SettingsContext.js"; import { SettingsManager } from "../../../features/settings/settings.js"; import { VirtualRoot } from "../../../features/virtual-drive/virtual-root.js"; import { StorageManager } from "../../../features/storage/storage.js"; import { round } from "../../../features/math/round.js"; import { Button } from "../../utils/Button.jsx"; /** * @param {object} props * @param {VirtualRoot} props.virtualRoot * @param {SettingsManager} props.settingsManager */ function AppearanceTab({ virtualRoot, settingsManager }) { const [wallpaper, setWallpaper] = useState(null); const settings = settingsManager.get(SettingsManager.VIRTUAL_PATHS.desktop); useEffect(() => { settings.get("wallpaper", setWallpaper); }, [settings]); const onChange = (event) => { const value = event.target.value; settings.set("wallpaper", value); }; return (<>

Wallpaper

{virtualRoot.navigate("~/Images")?.getFiles()?.map(({ name, id, source }) => )}
); } /** * @param {object} root * @param {VirtualRoot} root.virtualRoot */ function StorageTab({ virtualRoot }) { const maxBytes = StorageManager.MAX_BYTES; const usedBytes = StorageManager.getByteSize(virtualRoot.toString()); const maxKB = StorageManager.byteToKilobyte(maxBytes); const usedKB = StorageManager.byteToKilobyte(usedBytes); const freeKB = maxKB - usedKB; return (<>

Virtual Drive ({round(maxKB, 1)} KB)

{round(usedKB, 1)} KB used - {round(freeKB, 1)} KB free

Manage data

); } export function Settings() { const [tabIndex, setTabIndex] = useState(0); const virtualRoot = useVirtualRoot(); const settingsManager = useSettings(); return (
{tabIndex === 0 ? : tabIndex === 1 ? : null }
); }