Refactored utilities

This commit is contained in:
Prozilla 2023-12-26 11:48:38 +01:00
parent e05f7468d0
commit 3d7229a385
No known key found for this signature in database
GPG key ID: 5858DFE71CAF31EE
52 changed files with 44 additions and 41 deletions

View file

@ -1,3 +1,3 @@
<options>
<startup>file-explorer</startup>
<startup></startup>
</options>

View file

@ -1,7 +1,7 @@
import { useEffect, useState } from "react";
import styles from "./DropdownButton.module.css";
import OutsideClickListener from "../../../hooks/utils/outsideClick.js";
import { formatShortcut } from "../../../features/utils/string.utils.js";
import OutsideClickListener from "../../../hooks/_utils/outsideClick.js";
import { formatShortcut } from "../../../features/_utils/string.utils.js";
/**
* @param {object} props

View file

@ -1,7 +1,7 @@
import { Children, cloneElement, isValidElement } from "react";
import { useShortcuts } from "../../hooks/utils/keyboard.js";
import { useShortcuts } from "../../hooks/_utils/keyboard.js";
import styles from "./Actions.module.css";
import { useScreenBounds } from "../../hooks/utils/screen.js";
import { useScreenBounds } from "../../hooks/_utils/screen.js";
export const STYLES = {
CONTEXT_MENU: styles["Context-menu"],

View file

@ -1,5 +1,5 @@
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { formatShortcut } from "../../../features/utils/string.utils.js";
import { formatShortcut } from "../../../features/_utils/string.utils.js";
import styles from "../Actions.module.css";
import { ImagePreview } from "../../apps/file-explorer/directory-list/ImagePreview.jsx";
import { memo } from "react";

View file

@ -1,5 +1,5 @@
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { formatShortcut } from "../../../features/utils/string.utils.js";
import { formatShortcut } from "../../../features/_utils/string.utils.js";
import styles from "../Actions.module.css";
import { faCircleDot } from "@fortawesome/free-solid-svg-icons";
import { useState } from "react";

View file

@ -1,5 +1,5 @@
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { formatShortcut } from "../../../features/utils/string.utils.js";
import { formatShortcut } from "../../../features/_utils/string.utils.js";
import styles from "../Actions.module.css";
import { useState } from "react";
import { faSquare } from "@fortawesome/free-regular-svg-icons";

View file

@ -1,5 +1,5 @@
import { useShortcuts } from "../../../hooks/utils/keyboard.js";
import { DropdownButton } from "../../utils/dropdown-button/DropdownButton.jsx";
import { useShortcuts } from "../../../../hooks/_utils/keyboard.js";
import { DropdownButton } from "../../../_utils/dropdown-button/DropdownButton.jsx";
import styles from "./HeaderMenu.module.css";
/**

View file

@ -1,11 +1,11 @@
import { useEffect, useRef, useState } from "react";
import styles from "./Browser.module.css";
import { WebView } from "../_templates/WebView.jsx";
import { WebView } from "../_utils/web-view/WebView.jsx";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faCaretLeft, faCaretRight, faHome, faRotateRight } from "@fortawesome/free-solid-svg-icons";
import { HOME_URL, SEARCH_URL } from "../../../config/apps/browser.config.js";
import { isValidUrl } from "../../../features/utils/browser.utils.js";
import { useHistory } from "../../../hooks/utils/history.js";
import { isValidUrl } from "../../../features/_utils/browser.utils.js";
import { useHistory } from "../../../hooks/_utils/history.js";
/** @type {import("../../windows/WindowView.jsx").windowProps} */
export function Browser({ startUrl, focus }) {

View file

@ -18,7 +18,7 @@ import AppsManager from "../../../features/apps/appsManager.js";
import { APPS, APP_ICONS, APP_NAMES } from "../../../config/apps.config.js";
import { TITLE_SEPARATOR } from "../../../config/windows.config.js";
import { FileProperties } from "../../modals/file-properties/FileProperties.jsx";
import { useHistory } from "../../../hooks/utils/history.js";
import { useHistory } from "../../../hooks/_utils/history.js";
import { Divider } from "../../actions/actions/Divider.jsx";
/**

View file

@ -1,7 +1,7 @@
import { useEffect, useRef, useState } from "react";
import { VirtualFile } from "../../../../features/virtual-drive/file/virtualFile.js";
import { VirtualFolder } from "../../../../features/virtual-drive/folder/virtualFolder.js";
import { Interactable } from "../../../utils/interactable/Interactable.jsx";
import { Interactable } from "../../../_utils/interactable/Interactable.jsx";
import styles from "./DirectoryList.module.css";
import { ImagePreview } from "./ImagePreview.jsx";

View file

@ -1,4 +1,4 @@
import { Button } from "../../utils/button/Button.jsx";
import { Button } from "../../_utils/button/Button.jsx";
import styles from "./Settings.module.css";
import utilStyles from "../../../styles/utils.module.css";
import Vector2 from "../../../features/math/vector2.js";

View file

@ -1,8 +1,8 @@
import styles from "./Settings.module.css";
import utilStyles from "../../../styles/utils.module.css";
import { round } from "../../../features/math/round.js";
import { ProgressBar } from "../../utils/progress-bar/ProgressBar.jsx";
import { Button } from "../../utils/button/Button.jsx";
import { ProgressBar } from "../../_utils/progress-bar/ProgressBar.jsx";
import { Button } from "../../_utils/button/Button.jsx";
import { useVirtualRoot } from "../../../hooks/virtual-drive/virtualRootContext.js";
import { StorageManager } from "../../../features/storage/storageManager.js";

View file

@ -6,7 +6,7 @@ import { OutputLine } from "./OutputLine.jsx";
import { InputLine } from "./InputLine.jsx";
import { ANSI, HOSTNAME, USERNAME } from "../../../config/apps/terminal.config.js";
import CommandsManager from "../../../features/apps/terminal/commands.js";
import { removeFromArray } from "../../../features/utils/array.utils.js";
import { removeFromArray } from "../../../features/_utils/array.utils.js";
/**
* @param {import("../../windows/WindowView.jsx").windowProps} props

View file

@ -1,6 +1,6 @@
import React, { useEffect, useState } from "react";
import styles from "./TextEditor.module.css";
import { HeaderMenu } from "../_common/HeaderMenu.jsx";
import { HeaderMenu } from "../_utils/header-menu/HeaderMenu.jsx";
import Markdown from "markdown-to-jsx";
import { DEFAULT_ZOOM, ZOOM_FACTOR } from "../../../config/apps/textEditor.config.js";
import AppsManager from "../../../features/apps/appsManager.js";

View file

@ -8,7 +8,7 @@ import { ModalsView } from "../modals/ModalsView.jsx";
import { useWindowsManager } from "../../hooks/windows/windowsManagerContext.js";
import { useContextMenu } from "../../hooks/modals/contextMenu.js";
import { FALLBACK_ICON_SIZE, FALLBACK_WALLPAPER } from "../../config/desktop.config.js";
import { reloadViewport } from "../../features/utils/browser.utils.js";
import { reloadViewport } from "../../features/_utils/browser.utils.js";
import { useVirtualRoot } from "../../hooks/virtual-drive/virtualRootContext.js";
import { DirectoryList } from "../apps/file-explorer/directory-list/DirectoryList.jsx";
import { APPS, APP_ICONS, APP_NAMES } from "../../config/apps.config.js";
@ -20,7 +20,7 @@ import { ToggleAction } from "../actions/actions/ToggleAction.jsx";
import { DropdownAction } from "../actions/actions/DropdownAction.jsx";
import { RadioAction } from "../actions/actions/RadioAction.jsx";
import { Divider } from "../actions/actions/Divider.jsx";
import { isValidInteger } from "../../features/utils/number.utils.js";
import { isValidInteger } from "../../features/_utils/number.utils.js";
export const Desktop = memo(() => {
const settingsManager = useSettingsManager();

View file

@ -1,6 +1,6 @@
import { memo } from "react";
import { Modal as ModalType } from "../../features/modals/modal.js";
import OutsideClickListener from "../../hooks/utils/outsideClick.js";
import OutsideClickListener from "../../hooks/_utils/outsideClick.js";
import styles from "./ModalView.module.css";
import { useEffect } from "react";

View file

@ -1,5 +1,5 @@
import { useEffect, useRef, useState } from "react";
import { useScreenDimensions } from "../../../hooks/utils/screen.js";
import { useScreenDimensions } from "../../../hooks/_utils/screen.js";
import Vector2 from "../../../features/math/vector2.js";
import styles from "./WindowedModal.module.css";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";

View file

@ -5,13 +5,13 @@ import { faCog, faSearch } from "@fortawesome/free-solid-svg-icons";
import AppsManager from "../../features/apps/appsManager.js";
import { ReactSVG } from "react-svg";
import { HomeMenu } from "./menus/HomeMenu.jsx";
import OutsideClickListener from "../../hooks/utils/outsideClick.js";
import OutsideClickListener from "../../hooks/_utils/outsideClick.js";
import { Battery } from "./indicators/Battery.jsx";
import { Network } from "./indicators/Network.jsx";
import { Volume } from "./indicators/Volume.jsx";
import { SearchMenu } from "./menus/SearchMenu.jsx";
import { Calendar } from "./indicators/Calendar.jsx";
import { useScrollWithShadow } from "../../hooks/utils/scrollWithShadows.js";
import { useScrollWithShadow } from "../../hooks/_utils/scrollWithShadows.js";
import { AppButton } from "./app-icon/AppIcon.jsx";
import { useContextMenu } from "../../hooks/modals/contextMenu.js";
import { Actions } from "../actions/Actions.jsx";

View file

@ -9,7 +9,7 @@ import { Actions } from "../../actions/Actions.jsx";
import { ClickAction } from "../../actions/actions/ClickAction.jsx";
import { faThumbTack, faTimes } from "@fortawesome/free-solid-svg-icons";
import { SettingsManager } from "../../../features/settings/settingsManager.js";
import { removeFromArray } from "../../../features/utils/array.utils.js";
import { removeFromArray } from "../../../features/_utils/array.utils.js";
import AppsManager from "../../../features/apps/appsManager.js";
/**

View file

@ -5,8 +5,8 @@ import { faCircleInfo, faFileLines, faGear, faImage, faPowerOff } from "@fortawe
import { useWindowsManager } from "../../../hooks/windows/windowsManagerContext.js";
import AppsManager from "../../../features/apps/appsManager.js";
import { ReactSVG } from "react-svg";
import { closeViewport } from "../../../features/utils/browser.utils.js";
import { useKeyboardListener } from "../../../hooks/utils/keyboard.js";
import { closeViewport } from "../../../features/_utils/browser.utils.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";

View file

@ -4,7 +4,7 @@ import AppsManager from "../../../features/apps/appsManager.js";
import { useWindowsManager } from "../../../hooks/windows/windowsManagerContext.js";
import { ReactSVG } from "react-svg";
import { useEffect, useState } from "react";
import { useKeyboardListener } from "../../../hooks/utils/keyboard.js";
import { useKeyboardListener } from "../../../hooks/_utils/keyboard.js";
/**
* @param {object} props

View file

@ -15,9 +15,9 @@ import { useContextMenu } from "../../hooks/modals/contextMenu.js";
import AppsManager from "../../features/apps/appsManager.js";
import { ClickAction } from "../actions/actions/ClickAction.jsx";
import { Actions } from "../actions/Actions.jsx";
import { useScreenDimensions } from "../../hooks/utils/screen.js";
import { useScreenDimensions } from "../../hooks/_utils/screen.js";
import { NAME } from "../../config/branding.config.js";
import { setViewportIcon, setViewportTitle } from "../../features/utils/browser.utils.js";
import { setViewportIcon, setViewportTitle } from "../../features/_utils/browser.utils.js";
/**
* @typedef {object} windowProps

View file

@ -5,7 +5,7 @@ import { WindowView } from "./WindowView.jsx";
import { useSettingsManager } from "../../hooks/settings/settingsManagerContext.js";
import { SettingsManager } from "../../features/settings/settingsManager.js";
import { NAME, TAG_LINE } from "../../config/branding.config.js";
import { setViewportIcon, setViewportTitle } from "../../features/utils/browser.utils.js";
import { setViewportIcon, setViewportTitle } from "../../features/_utils/browser.utils.js";
export const WindowsView = memo(() => {
const settingsManager = useSettingsManager();

View file

@ -1,7 +1,7 @@
import App from "./app.js";
import { FileExplorer } from "../../components/apps/file-explorer/FileExplorer.jsx";
import { MediaViewer } from "../../components/apps/media-viewer/MediaViewer.jsx";
import { WebView } from "../../components/apps/_templates/WebView.jsx";
import { WebView } from "../../components/apps/_utils/web-view/WebView.jsx";
import { Terminal } from "../../components/apps/terminal/Terminal.jsx";
import { TextEditor } from "../../components/apps/text-editor/TextEditor.jsx";
import { Settings } from "../../components/apps/settings/Settings.jsx";

View file

@ -1,4 +1,4 @@
import { randomFromArray } from "../../../utils/array.utils.js";
import { randomFromArray } from "../../../_utils/array.utils.js";
import Command from "../command.js";
/**

View file

@ -2,7 +2,7 @@ import { APPS } from "../../../../config/apps.config.js";
import { ANSI } from "../../../../config/apps/terminal.config.js";
import { ANSI_ASCII_LOGO, ANSI_LOGO_COLOR, NAME } from "../../../../config/branding.config.js";
import { START_DATE } from "../../../../index.js";
import { formatRelativeTime } from "../../../utils/date.utils.js";
import { formatRelativeTime } from "../../../_utils/date.utils.js";
import AppsManager from "../../appsManager.js";
import Command from "../command.js";

View file

@ -1,4 +1,4 @@
import { reloadViewport } from "../../../utils/browser.utils.js";
import { reloadViewport } from "../../../_utils/browser.utils.js";
import Command from "../command.js";
export const reboot = new Command("reboot")

View file

@ -1,5 +1,5 @@
import { START_DATE } from "../../../../index.js";
import { formatRelativeTime } from "../../../utils/date.utils.js";
import { formatRelativeTime } from "../../../_utils/date.utils.js";
import Command from "../command.js";

View file

@ -1,6 +1,6 @@
import { APPS } from "../../../config/apps.config.js";
import AppsManager from "../../apps/appsManager.js";
import { removeFromArray } from "../../utils/array.utils.js";
import { removeFromArray } from "../../_utils/array.utils.js";
import WindowsManager from "../../windows/windowsManager.js";
import { VirtualFileLink } from "../file/virtualFileLink.js";
import { VirtualFolderLink } from "./virtualFolderLink.js";

View file

@ -68,6 +68,9 @@ export class VirtualFolderLink extends VirtualFolder {
if (this.iconUrl != null)
return this.iconUrl;
if (this.isValid() && this.linkedFolder.iconUrl)
return this.linkedFolder.iconUrl;
return AppsManager.getAppIconUrl(APPS.FILE_EXPLORER, "folder-link");
}

View file

@ -1,6 +1,6 @@
import { APPS } from "../../config/apps.config.js";
import AppsManager from "../apps/appsManager.js";
import { EventEmitter } from "../utils/event.utils.js";
import { EventEmitter } from "../_utils/event.utils.js";
import { VirtualRoot } from "./root/virtualRoot.js";
export class VirtualBase extends EventEmitter {

View file

@ -1,5 +1,5 @@
import { useEffect, useState } from "react";
import { removeFromArray } from "../../features/utils/array.utils.js";
import { removeFromArray } from "../../features/_utils/array.utils.js";
/**
* @param {object} params