From e1b584ba474c6bdd561c32783c6bff558e5287b5 Mon Sep 17 00:00:00 2001 From: Dustin Brett Date: Sat, 18 Nov 2023 21:02:03 -0800 Subject: [PATCH] Yet even more eslint rules --- .eslintrc.json | 20 ++++++- .vscode/settings.json | 3 +- components/apps/BoxedWine/index.tsx | 2 +- components/apps/BoxedWine/useBoxedWine.ts | 10 ++-- components/apps/Browser/index.tsx | 4 +- components/apps/ClassiCube/index.tsx | 2 +- components/apps/ClassiCube/useClassiCube.ts | 8 +-- components/apps/DX-Ball/index.tsx | 2 +- components/apps/DX-Ball/useDXBall.ts | 8 +-- components/apps/DevTools/index.tsx | 2 +- components/apps/DevTools/useEruda.ts | 7 +-- components/apps/Emulator/index.tsx | 2 +- components/apps/Emulator/useEmulator.ts | 13 ++--- components/apps/FileExplorer/AddressBar.tsx | 4 +- components/apps/FileExplorer/Navigation.tsx | 4 +- components/apps/FileExplorer/SearchBar.tsx | 6 +- .../apps/FileExplorer/StyledFileExplorer.ts | 2 +- components/apps/FileExplorer/index.tsx | 6 +- .../FileExplorer/useAddressBarContextMenu.ts | 4 +- components/apps/IRC/index.tsx | 4 +- components/apps/JSDOS/config.ts | 6 +- components/apps/JSDOS/index.tsx | 2 +- components/apps/JSDOS/types.ts | 4 +- components/apps/JSDOS/useDosCI.ts | 8 +-- components/apps/JSDOS/useJSDOS.ts | 6 +- components/apps/Marked/index.tsx | 2 +- components/apps/Marked/useMarked.ts | 6 +- components/apps/Messenger/ChatLog.tsx | 6 +- components/apps/Messenger/ChatProfile.tsx | 2 +- components/apps/Messenger/Contact.tsx | 4 +- components/apps/Messenger/GetMoreMessages.tsx | 8 ++- components/apps/Messenger/HistoryContext.tsx | 8 +-- components/apps/Messenger/MessageContext.tsx | 18 +++--- components/apps/Messenger/NostrContext.tsx | 3 +- components/apps/Messenger/Profile.tsx | 2 +- components/apps/Messenger/ProfileBanner.tsx | 4 +- .../apps/Messenger/SanitizedContent.tsx | 4 +- components/apps/Messenger/SendMessage.tsx | 2 +- components/apps/Messenger/constants.ts | 2 +- components/apps/Messenger/functions.ts | 45 ++++++++------- components/apps/Messenger/hooks.ts | 20 ++++--- components/apps/Messenger/index.tsx | 8 +-- components/apps/Messenger/types.ts | 2 +- components/apps/MonacoEditor/StatusBar.tsx | 8 +-- components/apps/MonacoEditor/functions.ts | 2 +- components/apps/MonacoEditor/index.tsx | 2 +- components/apps/MonacoEditor/language.ts | 2 +- components/apps/MonacoEditor/useMonaco.ts | 10 ++-- components/apps/OpenType/index.tsx | 6 +- components/apps/PDF/Controls.tsx | 4 +- components/apps/PDF/index.tsx | 2 +- components/apps/PDF/usePDF.ts | 12 ++-- components/apps/Paint/index.tsx | 8 +-- components/apps/Photos/index.tsx | 6 +- components/apps/Photos/usePanZoom.ts | 16 +++--- components/apps/Quake3/index.tsx | 2 +- components/apps/Quake3/useQuake3.ts | 8 +-- components/apps/Ruffle/index.tsx | 2 +- components/apps/Ruffle/useRuffle.ts | 8 +-- components/apps/SpaceCadet/index.tsx | 2 +- components/apps/SpaceCadet/useSpaceCadet.ts | 8 +-- components/apps/StableDiffusion/index.tsx | 6 +- components/apps/StableDiffusion/sd.worker.ts | 4 +- components/apps/Terminal/config.ts | 2 +- components/apps/Terminal/functions.ts | 2 +- components/apps/Terminal/index.tsx | 2 +- components/apps/Terminal/loadWapm.ts | 4 +- components/apps/Terminal/processGit.ts | 22 +++---- components/apps/Terminal/python.ts | 2 +- components/apps/Terminal/types.ts | 2 +- .../apps/Terminal/useCommandInterpreter.ts | 20 +++---- components/apps/Terminal/useTerminal.ts | 30 +++++----- components/apps/TinyMCE/functions.ts | 2 +- components/apps/TinyMCE/index.tsx | 2 +- components/apps/TinyMCE/types.ts | 2 +- components/apps/TinyMCE/useTinyMCE.ts | 10 ++-- components/apps/V86/index.tsx | 2 +- components/apps/V86/types.ts | 4 +- components/apps/V86/useV86.ts | 17 +++--- components/apps/V86/useV86ScreenSize.ts | 4 +- components/apps/VideoPlayer/config.ts | 2 +- components/apps/VideoPlayer/index.tsx | 2 +- components/apps/VideoPlayer/useVideoPlayer.ts | 12 ++-- components/apps/Vim/index.tsx | 8 +-- components/apps/Vim/types.ts | 2 +- components/apps/Webamp/functions.ts | 19 ++++--- components/apps/Webamp/index.tsx | 8 +-- components/apps/Webamp/types.ts | 5 +- components/apps/Webamp/useWebamp.ts | 8 +-- components/pages/Metadata.tsx | 6 +- components/pages/StyledApp.tsx | 7 +-- components/system/Apps/AppContainer.tsx | 6 +- components/system/Apps/AppsLoader.tsx | 2 +- components/system/Apps/RenderComponent.tsx | 4 +- .../system/Desktop/Wallpapers/Matrix/index.ts | 2 +- .../CoastalLandscape/wallpaper.worker.ts | 2 +- .../Wallpapers/StableDiffusion/index.ts | 4 +- .../system/Desktop/Wallpapers/constants.ts | 4 +- .../Wallpapers/hexells/wallpaper.worker.ts | 2 +- components/system/Desktop/Wallpapers/types.ts | 6 +- .../system/Desktop/Wallpapers/useWallpaper.ts | 10 ++-- .../Desktop/Wallpapers/vantaWaves/config.ts | 2 +- .../Desktop/Wallpapers/vantaWaves/index.ts | 4 +- .../Desktop/Wallpapers/vantaWaves/types.ts | 2 +- .../Wallpapers/vantaWaves/wallpaper.worker.ts | 10 ++-- components/system/Desktop/index.tsx | 2 +- components/system/Dialogs/OpenWith/index.tsx | 4 +- .../system/Dialogs/Properties/GeneralTab.tsx | 10 ++-- .../system/Dialogs/Properties/index.tsx | 6 +- .../system/Dialogs/Properties/useStats.ts | 2 +- components/system/Dialogs/Run/StyledRun.ts | 2 +- components/system/Dialogs/Run/index.tsx | 6 +- .../system/Dialogs/Transfer/StyledTransfer.ts | 2 +- components/system/Dialogs/Transfer/index.tsx | 18 +++--- .../Dialogs/Transfer/useTransferDialog.ts | 2 +- .../system/Files/FileEntry/RenameBox.tsx | 6 +- .../system/Files/FileEntry/SubIcons.tsx | 6 +- components/system/Files/FileEntry/exeIcons.ts | 9 ++- .../system/Files/FileEntry/functions.ts | 19 ++++--- components/system/Files/FileEntry/index.tsx | 40 ++++++------- components/system/Files/FileEntry/useFile.ts | 4 +- .../Files/FileEntry/useFileContextMenu.ts | 20 +++---- .../system/Files/FileEntry/useFileInfo.ts | 2 +- .../Files/FileManager/Selection/functions.ts | 2 +- .../FileManager/Selection/useSelection.ts | 10 ++-- .../system/Files/FileManager/StatusBar.tsx | 8 +-- .../system/Files/FileManager/functions.ts | 20 +++---- components/system/Files/FileManager/index.tsx | 12 ++-- .../Files/FileManager/useDraggableEntries.ts | 8 +-- .../Files/FileManager/useEmscriptenMount.ts | 4 +- .../system/Files/FileManager/useFileDrop.ts | 14 ++--- .../FileManager/useFileKeyboardShortcuts.ts | 14 ++--- .../system/Files/FileManager/useFolder.ts | 24 ++++---- .../Files/FileManager/useFolderContextMenu.ts | 20 +++---- .../system/Files/FileManager/useSortBy.ts | 6 +- .../Files/Views/Icon/StyledFileEntry.ts | 2 +- .../Files/Views/Icon/StyledFileManager.ts | 2 +- components/system/Files/Views/index.ts | 2 +- components/system/Menu/MenuItemEntry.tsx | 22 +++---- components/system/Menu/index.tsx | 6 +- components/system/Menu/menuTransition.ts | 2 +- .../StartMenu/Sidebar/SidebarButton.tsx | 2 +- .../StartMenu/Sidebar/StyledSidebarButton.ts | 2 +- components/system/StartMenu/Sidebar/index.tsx | 9 +-- .../system/StartMenu/StyledStartMenu.ts | 4 +- components/system/StartMenu/index.tsx | 6 +- components/system/Taskbar/Calendar/index.tsx | 10 ++-- .../system/Taskbar/Clock/clock.worker.ts | 10 ++-- components/system/Taskbar/Clock/index.tsx | 8 +-- .../Taskbar/Clock/useClockContextMenu.ts | 6 +- components/system/Taskbar/Search/Details.tsx | 8 +-- .../system/Taskbar/Search/ResultEntry.tsx | 8 +-- .../system/Taskbar/Search/ResultSection.tsx | 4 +- .../system/Taskbar/Search/SearchButton.tsx | 3 +- .../system/Taskbar/Search/StyledSearch.ts | 4 +- components/system/Taskbar/Search/functions.ts | 8 +-- components/system/Taskbar/Search/index.tsx | 11 ++-- .../Search/useSearchInputTransition.ts | 2 +- .../system/Taskbar/StartButton/index.tsx | 2 +- .../system/Taskbar/TaskbarEntries/index.tsx | 4 +- .../Taskbar/TaskbarEntry/Peek/PeekWindow.tsx | 2 +- .../TaskbarEntry/Peek/StyledPeekWindow.ts | 2 +- .../TaskbarEntry/Peek/usePeekTransition.ts | 2 +- .../TaskbarEntry/Peek/useWindowPeek.ts | 2 +- .../system/Taskbar/TaskbarEntry/index.tsx | 6 +- .../TaskbarEntry/useTaskbarTransition.ts | 2 +- components/system/Taskbar/TaskbarPanel.ts | 3 +- components/system/Taskbar/index.tsx | 6 +- .../system/Taskbar/useTaskbarContextMenu.ts | 8 +-- .../Taskbar/useTaskbarItemTransition.ts | 2 +- components/system/Window/RndWindow/index.tsx | 4 +- .../system/Window/RndWindow/rndDefaults.ts | 2 +- .../system/Window/RndWindow/useDefaultSize.ts | 6 +- .../system/Window/RndWindow/useDraggable.ts | 8 +-- .../system/Window/RndWindow/useMinMaxRef.ts | 2 +- .../system/Window/RndWindow/useResizable.ts | 4 +- components/system/Window/RndWindow/useRnd.ts | 6 +- .../system/Window/Titlebar/StyledTitlebar.ts | 3 +- components/system/Window/Titlebar/index.tsx | 4 +- .../Window/Titlebar/useTitlebarContextMenu.ts | 8 +-- .../Window/Titlebar/useWindowActions.ts | 2 +- components/system/Window/functions.ts | 8 +-- components/system/Window/index.tsx | 4 +- components/system/Window/useFocusable.ts | 2 +- components/system/Window/useTitle.ts | 2 +- components/system/Window/useWindowSize.ts | 4 +- .../system/Window/useWindowTransitions.ts | 4 +- contexts/fileSystem/FileSystemConfig.ts | 2 +- contexts/fileSystem/core.ts | 2 +- contexts/fileSystem/functions.ts | 14 ++--- contexts/fileSystem/useAsyncFs.ts | 20 +++---- .../fileSystem/useFileSystemContextState.ts | 37 ++++++------ contexts/process/directory.ts | 2 +- contexts/process/functions.ts | 10 ++-- contexts/process/types.ts | 12 ++-- contexts/process/useProcessContextState.ts | 10 ++-- contexts/session/types.ts | 8 +-- contexts/session/useSessionContextState.ts | 33 ++++++----- contexts/viewport/useViewportContextState.ts | 12 ++-- e2e/components/apps/FileExplorer.spec.ts | 2 +- e2e/constants.ts | 6 +- e2e/functions.ts | 11 +++- hooks/useGlobalKeyboardShortcuts.ts | 2 +- hooks/useHistory.ts | 2 +- hooks/useIFrameFocuser.ts | 2 +- hooks/useProcessesRef.tsx | 4 +- hooks/useUrlLoader.ts | 2 +- package.json | 2 + pages/_app.tsx | 2 +- pages/_document.tsx | 10 +++- pages/_error.tsx | 2 +- pages/index.tsx | 2 +- playwright.config.ts | 3 +- styles/common/ScrollBars.ts | 3 +- styles/defaultTheme/index.ts | 2 +- styles/themes.ts | 2 +- utils/constants.ts | 8 +-- utils/ffmpeg/index.ts | 10 ++-- utils/functions.ts | 24 ++++---- utils/imagemagick/index.ts | 4 +- utils/search.ts | 10 ++-- utils/sheetjs.ts | 2 +- utils/zipFunctions.ts | 16 +++--- yarn.lock | 57 +++++++++++++++++++ 224 files changed, 842 insertions(+), 738 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 6c088b7d..7384fd7d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -10,8 +10,10 @@ "plugin:jest/recommended", "plugin:jsx-a11y/recommended", "plugin:playwright/recommended", + "plugin:promise/recommended", "plugin:react/recommended", "plugin:react/jsx-runtime", + "plugin:regexp/recommended", "plugin:sonarjs/recommended", "plugin:typescript-sort-keys/recommended", "plugin:unicorn/recommended", @@ -27,8 +29,10 @@ "import", "jest", "prettier", + "promise", "react", "react-hooks-addons", + "regexp", "sonarjs", "sort-keys-fix", "typescript-sort-keys", @@ -40,7 +44,7 @@ "@typescript-eslint/consistent-type-definitions": "off", "@typescript-eslint/consistent-type-imports": [ "error", - { "prefer": "type-imports" } + { "fixStyle": "inline-type-imports", "prefer": "type-imports" } ], "@typescript-eslint/explicit-function-return-type": [ "error", @@ -75,6 +79,7 @@ "camelcase": "off", "class-methods-use-this": "off", "curly": "error", + "import/consistent-type-specifier-style": ["error", "prefer-inline"], "import/extensions": [ "error", "ignorePackages", @@ -83,11 +88,12 @@ "import/first": "error", "import/newline-after-import": "error", "import/no-cycle": "off", - "import/no-duplicates": "error", + "import/no-duplicates": ["error", { "prefer-inline": true }], "import/no-extraneous-dependencies": [ "error", { "devDependencies": ["*.config.ts", "e2e/**", "__tests__/**"] } ], + "import/order": ["error", { "newlines-between": "never" }], "import/prefer-default-export": "off", "jsx-a11y/label-has-associated-control": [ "error", @@ -116,6 +122,11 @@ "playwright/expect-expect": "off", "playwright/no-conditional-in-test": "off", "playwright/no-skipped-test": "off", + "promise/always-return": "off", + "promise/catch-or-return": "off", + "promise/no-nesting": "off", + "promise/no-callback-in-promise": "off", + "promise/no-promise-in-callback": "off", "react/function-component-definition": [ "error", { "namedComponents": "arrow-function" } @@ -137,6 +148,10 @@ "react/require-default-props": "off", "react/require-optimization": "error", "react-hooks-addons/no-unused-deps": "warn", + "regexp/no-unused-capturing-group": "error", + "regexp/no-useless-assertions": "error", + "regexp/no-useless-flag": "error", + "regexp/strict": "error", "sonarjs/cognitive-complexity": "off", "sonarjs/no-nested-template-literals": "off", "sort-keys-fix/sort-keys-fix": "error", @@ -155,6 +170,7 @@ "unicorn/no-array-for-each": "off", "unicorn/no-array-reduce": "off", "unicorn/no-await-expression-member": "off", + "unicorn/no-unused-properties": "error", "unicorn/numeric-separators-style": "off", "unicorn/prefer-at": "off", "unicorn/prefer-node-protocol": "off", diff --git a/.vscode/settings.json b/.vscode/settings.json index b583bed7..9972d111 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,7 @@ { "editor.codeActionsOnSave": { "source.addMissingImports": "always", - "source.fixAll": "always", - "source.organizeImports": "always" + "source.fixAll": "always" }, "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true diff --git a/components/apps/BoxedWine/index.tsx b/components/apps/BoxedWine/index.tsx index 41034f0b..7a9dce8e 100644 --- a/components/apps/BoxedWine/index.tsx +++ b/components/apps/BoxedWine/index.tsx @@ -1,7 +1,7 @@ import StyledBoxedWine from "components/apps/BoxedWine/StyledBoxedWine"; import useBoxedWine from "components/apps/BoxedWine/useBoxedWine"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { haltEvent } from "utils/functions"; const BoxedWine: FC = ({ id }) => ( diff --git a/components/apps/BoxedWine/useBoxedWine.ts b/components/apps/BoxedWine/useBoxedWine.ts index ce89467d..7f3109b3 100644 --- a/components/apps/BoxedWine/useBoxedWine.ts +++ b/components/apps/BoxedWine/useBoxedWine.ts @@ -1,13 +1,13 @@ +import { basename } from "path"; +import { useCallback, useEffect, useRef } from "react"; +import { type Unzipped } from "fflate"; import { getConfig } from "components/apps/BoxedWine/config"; -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useEmscriptenMount from "components/system/Files/FileManager/useEmscriptenMount"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; -import type { EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; +import { type EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; import { useProcesses } from "contexts/process"; -import type { Unzipped } from "fflate"; -import { basename } from "path"; -import { useCallback, useEffect, useRef } from "react"; import { getExtension, isCanvasDrawn, loadFiles } from "utils/functions"; declare global { diff --git a/components/apps/Browser/index.tsx b/components/apps/Browser/index.tsx index adf2886e..cd246b4c 100644 --- a/components/apps/Browser/index.tsx +++ b/components/apps/Browser/index.tsx @@ -1,13 +1,13 @@ +import { useCallback, useEffect, useRef, useState } from "react"; import { Arrow, Refresh, Stop } from "components/apps/Browser/NavigationIcons"; import StyledBrowser from "components/apps/Browser/StyledBrowser"; import { HOME_PAGE, bookmarks } from "components/apps/Browser/config"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; import useHistory from "hooks/useHistory"; -import { useCallback, useEffect, useRef, useState } from "react"; import Button from "styles/common/Button"; import Icon from "styles/common/Icon"; import { diff --git a/components/apps/ClassiCube/index.tsx b/components/apps/ClassiCube/index.tsx index ff1eb9c2..a979137e 100644 --- a/components/apps/ClassiCube/index.tsx +++ b/components/apps/ClassiCube/index.tsx @@ -1,7 +1,7 @@ import StyledClassiCube from "components/apps/ClassiCube/StyledClassiCube"; import useClassiCube from "components/apps/ClassiCube/useClassiCube"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { haltEvent } from "utils/functions"; const ClassiCube: FC = ({ id }) => ( diff --git a/components/apps/ClassiCube/useClassiCube.ts b/components/apps/ClassiCube/useClassiCube.ts index b93feef3..8f300adb 100644 --- a/components/apps/ClassiCube/useClassiCube.ts +++ b/components/apps/ClassiCube/useClassiCube.ts @@ -1,10 +1,10 @@ -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { useTheme } from "styled-components"; +import { useCallback, useEffect } from "react"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useEmscriptenMount from "components/system/Files/FileManager/useEmscriptenMount"; -import type { EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; +import { type EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { useCallback, useEffect } from "react"; -import { useTheme } from "styled-components"; import { TRANSITIONS_IN_MILLISECONDS } from "utils/constants"; import { loadFiles, pxToNum } from "utils/functions"; diff --git a/components/apps/DX-Ball/index.tsx b/components/apps/DX-Ball/index.tsx index edadb12b..a6cedd98 100644 --- a/components/apps/DX-Ball/index.tsx +++ b/components/apps/DX-Ball/index.tsx @@ -1,7 +1,7 @@ import StyledDXBall from "components/apps/DX-Ball/StyledDXBall"; import useDXBall from "components/apps/DX-Ball/useDXBall"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { haltEvent } from "utils/functions"; const DXBall: FC = ({ id }) => ( diff --git a/components/apps/DX-Ball/useDXBall.ts b/components/apps/DX-Ball/useDXBall.ts index 943091f6..5126c716 100644 --- a/components/apps/DX-Ball/useDXBall.ts +++ b/components/apps/DX-Ball/useDXBall.ts @@ -1,9 +1,9 @@ -import { DX_BALL_GLOBALS, SAVE_PATH } from "components/apps/DX-Ball/constants"; -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; -import { useFileSystem } from "contexts/fileSystem"; -import { useProcesses } from "contexts/process"; import { basename, dirname } from "path"; import { useEffect, useRef } from "react"; +import { DX_BALL_GLOBALS, SAVE_PATH } from "components/apps/DX-Ball/constants"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; +import { useFileSystem } from "contexts/fileSystem"; +import { useProcesses } from "contexts/process"; import { TRANSITIONS_IN_MILLISECONDS } from "utils/constants"; import { loadFiles } from "utils/functions"; import { cleanUpGlobals } from "utils/globals"; diff --git a/components/apps/DevTools/index.tsx b/components/apps/DevTools/index.tsx index 0db592b7..f2d130e9 100644 --- a/components/apps/DevTools/index.tsx +++ b/components/apps/DevTools/index.tsx @@ -1,7 +1,7 @@ import StyledDevTools from "components/apps/DevTools/StyledDevTools"; import useEruda from "components/apps/DevTools/useEruda"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const DevTools: FC = ({ id }) => ( diff --git a/components/apps/DevTools/useEruda.ts b/components/apps/DevTools/useEruda.ts index 59d8c6a9..7e68b7b4 100644 --- a/components/apps/DevTools/useEruda.ts +++ b/components/apps/DevTools/useEruda.ts @@ -1,8 +1,7 @@ -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; -import { useProcesses } from "contexts/process"; -import type Eruda from "eruda"; -import type { InitOptions } from "eruda"; import { useEffect } from "react"; +import { type default as Eruda, type InitOptions } from "eruda"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; +import { useProcesses } from "contexts/process"; import { loadFiles, viewWidth } from "utils/functions"; declare global { diff --git a/components/apps/Emulator/index.tsx b/components/apps/Emulator/index.tsx index 923356cc..5ab06bfa 100644 --- a/components/apps/Emulator/index.tsx +++ b/components/apps/Emulator/index.tsx @@ -1,7 +1,7 @@ import StyledEmulator from "components/apps/Emulator/StyledEmulator"; import useEmulator from "components/apps/Emulator/useEmulator"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const Emulator: FC = ({ id }) => ( diff --git a/components/apps/Emulator/useEmulator.ts b/components/apps/Emulator/useEmulator.ts index 8e6c7ffd..ec4173d1 100644 --- a/components/apps/Emulator/useEmulator.ts +++ b/components/apps/Emulator/useEmulator.ts @@ -1,14 +1,13 @@ -import type { Core } from "components/apps/Emulator/config"; -import { emulatorCores } from "components/apps/Emulator/config"; -import type { Emulator } from "components/apps/Emulator/types"; -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { basename, dirname, extname, join } from "path"; +import { useCallback, useEffect, useRef } from "react"; +import { type Core, emulatorCores } from "components/apps/Emulator/config"; +import { type Emulator } from "components/apps/Emulator/types"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useEmscriptenMount from "components/system/Files/FileManager/useEmscriptenMount"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; -import type { EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; +import { type EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; import { useProcesses } from "contexts/process"; -import { basename, dirname, extname, join } from "path"; -import { useCallback, useEffect, useRef } from "react"; import { ICON_CACHE, ICON_CACHE_EXTENSION, SAVE_PATH } from "utils/constants"; import { bufferToUrl, getExtension, loadFiles } from "utils/functions"; import { zipAsync } from "utils/zipFunctions"; diff --git a/components/apps/FileExplorer/AddressBar.tsx b/components/apps/FileExplorer/AddressBar.tsx index 5c093dbf..83a904d1 100644 --- a/components/apps/FileExplorer/AddressBar.tsx +++ b/components/apps/FileExplorer/AddressBar.tsx @@ -1,10 +1,10 @@ +import { basename } from "path"; +import { forwardRef, useEffect, useState } from "react"; import { Refresh } from "components/apps/FileExplorer/NavigationIcons"; import StyledAddressBar from "components/apps/FileExplorer/StyledAddressBar"; import useAddressBarContextMenu from "components/apps/FileExplorer/useAddressBarContextMenu"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import { basename } from "path"; -import { forwardRef, useEffect, useState } from "react"; import Button from "styles/common/Button"; import Icon from "styles/common/Icon"; import { ROOT_NAME } from "utils/constants"; diff --git a/components/apps/FileExplorer/Navigation.tsx b/components/apps/FileExplorer/Navigation.tsx index f0a2b2f1..349bb275 100644 --- a/components/apps/FileExplorer/Navigation.tsx +++ b/components/apps/FileExplorer/Navigation.tsx @@ -1,3 +1,5 @@ +import { basename, dirname } from "path"; +import { forwardRef, useMemo } from "react"; import AddressBar from "components/apps/FileExplorer/AddressBar"; import { Back, @@ -11,8 +13,6 @@ import useTitlebarContextMenu from "components/system/Window/Titlebar/useTitleba import { useMenu } from "contexts/menu"; import { useProcesses } from "contexts/process"; import useHistory from "hooks/useHistory"; -import { basename, dirname } from "path"; -import { forwardRef, useMemo } from "react"; import Button from "styles/common/Button"; import { ROOT_NAME } from "utils/constants"; import { haltEvent, label } from "utils/functions"; diff --git a/components/apps/FileExplorer/SearchBar.tsx b/components/apps/FileExplorer/SearchBar.tsx index 0acb7999..c18cef12 100644 --- a/components/apps/FileExplorer/SearchBar.tsx +++ b/components/apps/FileExplorer/SearchBar.tsx @@ -1,13 +1,13 @@ +import { basename } from "path"; +import { memo, useEffect, useRef, useState } from "react"; import { Search } from "components/apps/FileExplorer/NavigationIcons"; import StyledSearch from "components/apps/FileExplorer/StyledSearch"; import { getResultInfo } from "components/system/Taskbar/Search/functions"; import { useFileSystem } from "contexts/fileSystem"; import { useMenu } from "contexts/menu"; -import type { MenuItem } from "contexts/menu/useMenuContextState"; +import { type MenuItem } from "contexts/menu/useMenuContextState"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { basename } from "path"; -import { memo, useEffect, useRef, useState } from "react"; import { SHORTCUT_EXTENSION } from "utils/constants"; import { preloadLibs } from "utils/functions"; import { SEARCH_LIBS, useSearch } from "utils/search"; diff --git a/components/apps/FileExplorer/StyledFileExplorer.ts b/components/apps/FileExplorer/StyledFileExplorer.ts index f42024a6..6b07b739 100644 --- a/components/apps/FileExplorer/StyledFileExplorer.ts +++ b/components/apps/FileExplorer/StyledFileExplorer.ts @@ -1,7 +1,7 @@ +import styled from "styled-components"; import StyledLoading from "components/system/Files/FileManager/StyledLoading"; import StyledFileEntry from "components/system/Files/Views/Icon/StyledFileEntry"; import StyledFileManager from "components/system/Files/Views/Icon/StyledFileManager"; -import styled from "styled-components"; const StyledFileExplorer = styled.div` ${StyledFileManager} { diff --git a/components/apps/FileExplorer/index.tsx b/components/apps/FileExplorer/index.tsx index 119554b7..1917f122 100644 --- a/components/apps/FileExplorer/index.tsx +++ b/components/apps/FileExplorer/index.tsx @@ -1,13 +1,13 @@ +import { basename } from "path"; +import { useCallback, useEffect, useRef, useState } from "react"; import Navigation from "components/apps/FileExplorer/Navigation"; import StyledFileExplorer from "components/apps/FileExplorer/StyledFileExplorer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { getIconFromIni } from "components/system/Files/FileEntry/functions"; import FileManager from "components/system/Files/FileManager"; import { useFileSystem } from "contexts/fileSystem"; import { getMountUrl, isMountedFolder } from "contexts/fileSystem/functions"; import { useProcesses } from "contexts/process"; -import { basename } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; import { COMPRESSED_FOLDER_ICON, FOLDER_ICON, diff --git a/components/apps/FileExplorer/useAddressBarContextMenu.ts b/components/apps/FileExplorer/useAddressBarContextMenu.ts index e2f6d79d..372eaf0e 100644 --- a/components/apps/FileExplorer/useAddressBarContextMenu.ts +++ b/components/apps/FileExplorer/useAddressBarContextMenu.ts @@ -1,6 +1,6 @@ -import { useMenu } from "contexts/menu"; -import type { ContextMenuCapture } from "contexts/menu/useMenuContextState"; import { useMemo } from "react"; +import { useMenu } from "contexts/menu"; +import { type ContextMenuCapture } from "contexts/menu/useMenuContextState"; const useAddressBarContextMenu = (address: string): ContextMenuCapture => { const { contextMenu } = useMenu(); diff --git a/components/apps/IRC/index.tsx b/components/apps/IRC/index.tsx index 5111c4b7..516d5e74 100644 --- a/components/apps/IRC/index.tsx +++ b/components/apps/IRC/index.tsx @@ -1,9 +1,9 @@ +import { useEffect, useRef, useState } from "react"; import { getNetworkConfig } from "components/apps/IRC/config"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledLoading from "components/system/Files/FileManager/StyledLoading"; import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; -import { useEffect, useRef, useState } from "react"; import { IFRAME_CONFIG } from "utils/constants"; type KiwiIrcClient = { diff --git a/components/apps/JSDOS/config.ts b/components/apps/JSDOS/config.ts index 6c25d310..82870b36 100644 --- a/components/apps/JSDOS/config.ts +++ b/components/apps/JSDOS/config.ts @@ -1,6 +1,6 @@ -import type { - DosOptions, - EmulatorFunction, +import { + type DosOptions, + type EmulatorFunction, } from "emulators-ui/dist/types/js-dos"; export const dosOptions: DosOptions = { diff --git a/components/apps/JSDOS/index.tsx b/components/apps/JSDOS/index.tsx index 94186f92..9dda001b 100644 --- a/components/apps/JSDOS/index.tsx +++ b/components/apps/JSDOS/index.tsx @@ -1,7 +1,7 @@ import StyledJSDOS from "components/apps/JSDOS/StyledJSDOS"; import useJSDOS from "components/apps/JSDOS/useJSDOS"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const JSDOS: FC = ({ id }) => ( diff --git a/components/apps/JSDOS/types.ts b/components/apps/JSDOS/types.ts index 47370d0a..27bcfa2c 100644 --- a/components/apps/JSDOS/types.ts +++ b/components/apps/JSDOS/types.ts @@ -1,5 +1,5 @@ -import type { EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; -import type { DosFactoryType } from "emulators-ui/dist/types/js-dos"; +import { type DosFactoryType } from "emulators-ui/dist/types/js-dos"; +import { type EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; declare global { interface Window { diff --git a/components/apps/JSDOS/useDosCI.ts b/components/apps/JSDOS/useDosCI.ts index 024d7821..5a9ba13e 100644 --- a/components/apps/JSDOS/useDosCI.ts +++ b/components/apps/JSDOS/useDosCI.ts @@ -1,3 +1,7 @@ +import { basename, dirname, join } from "path"; +import { useCallback, useEffect, useState } from "react"; +import { type DosInstance } from "emulators-ui/dist/types/js-dos"; +import { type CommandInterface } from "emulators"; import { globals, saveExtension, @@ -6,10 +10,6 @@ import { import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import type { CommandInterface } from "emulators"; -import type { DosInstance } from "emulators-ui/dist/types/js-dos"; -import { basename, dirname, join } from "path"; -import { useCallback, useEffect, useState } from "react"; import { ICON_CACHE, ICON_CACHE_EXTENSION, diff --git a/components/apps/JSDOS/useJSDOS.ts b/components/apps/JSDOS/useJSDOS.ts index d4eb9464..03ca917a 100644 --- a/components/apps/JSDOS/useJSDOS.ts +++ b/components/apps/JSDOS/useJSDOS.ts @@ -1,16 +1,16 @@ +import { useEffect, useLayoutEffect, useRef, useState } from "react"; +import { type DosInstance } from "emulators-ui/dist/types/js-dos"; import { CAPTURED_KEYS, dosOptions, pathPrefix, } from "components/apps/JSDOS/config"; import useDosCI from "components/apps/JSDOS/useDosCI"; -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useEmscriptenMount from "components/system/Files/FileManager/useEmscriptenMount"; import useWindowSize from "components/system/Window/useWindowSize"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import type { DosInstance } from "emulators-ui/dist/types/js-dos"; -import { useEffect, useLayoutEffect, useRef, useState } from "react"; import { PREVENT_SCROLL } from "utils/constants"; import { loadFiles, pxToNum } from "utils/functions"; diff --git a/components/apps/Marked/index.tsx b/components/apps/Marked/index.tsx index 45a712ac..ddaabd13 100644 --- a/components/apps/Marked/index.tsx +++ b/components/apps/Marked/index.tsx @@ -1,7 +1,7 @@ import StyledMarked from "components/apps/Marked/StyledMarked"; import useMarked from "components/apps/Marked/useMarked"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const Marked: FC = ({ id }) => ( diff --git a/components/apps/Marked/useMarked.ts b/components/apps/Marked/useMarked.ts index fc23372a..039e6f68 100644 --- a/components/apps/Marked/useMarked.ts +++ b/components/apps/Marked/useMarked.ts @@ -1,9 +1,9 @@ -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { basename } from "path"; +import { useCallback, useEffect } from "react"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import { basename } from "path"; -import { useCallback, useEffect } from "react"; import { haltEvent, isYouTubeUrl, loadFiles } from "utils/functions"; type MarkedOptions = { diff --git a/components/apps/Messenger/ChatLog.tsx b/components/apps/Messenger/ChatLog.tsx index 546f94f4..3de03949 100644 --- a/components/apps/Messenger/ChatLog.tsx +++ b/components/apps/Messenger/ChatLog.tsx @@ -1,3 +1,5 @@ +import { useCallback, useEffect, useRef, useState } from "react"; +import dynamic from "next/dynamic"; import ChatProfile from "components/apps/Messenger/ChatProfile"; import { Avatar, @@ -15,9 +17,7 @@ import { prettyChatTimestamp, } from "components/apps/Messenger/functions"; import { useNostrProfile } from "components/apps/Messenger/hooks"; -import type { DecryptedContent } from "components/apps/Messenger/types"; -import dynamic from "next/dynamic"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { type DecryptedContent } from "components/apps/Messenger/types"; import { clsx } from "utils/functions"; const SanitizedContent = dynamic( diff --git a/components/apps/Messenger/ChatProfile.tsx b/components/apps/Messenger/ChatProfile.tsx index be3a84f9..503e80cc 100644 --- a/components/apps/Messenger/ChatProfile.tsx +++ b/components/apps/Messenger/ChatProfile.tsx @@ -1,7 +1,7 @@ +import { useRef } from "react"; import Profile from "components/apps/Messenger/Profile"; import StyledChatProfile from "components/apps/Messenger/StyledChatProfile"; import { useIsVisible, useNostrProfile } from "components/apps/Messenger/hooks"; -import { useRef } from "react"; const ChatProfile: FC<{ publicKey: string }> = ({ publicKey }) => { const elementRef = useRef(null); diff --git a/components/apps/Messenger/Contact.tsx b/components/apps/Messenger/Contact.tsx index f78b3c87..c97218bf 100644 --- a/components/apps/Messenger/Contact.tsx +++ b/components/apps/Messenger/Contact.tsx @@ -1,3 +1,5 @@ +import { useEffect, useMemo, useRef, useState } from "react"; +import { type Event } from "nostr-tools"; import Profile from "components/apps/Messenger/Profile"; import { copyKeyMenuItems, @@ -6,8 +8,6 @@ import { } from "components/apps/Messenger/functions"; import { useIsVisible, useNostrProfile } from "components/apps/Messenger/hooks"; import { useMenu } from "contexts/menu"; -import { type Event } from "nostr-tools"; -import { useEffect, useMemo, useRef, useState } from "react"; import Button from "styles/common/Button"; import { MENU_SEPERATOR, MILLISECONDS_IN_MINUTE } from "utils/constants"; diff --git a/components/apps/Messenger/GetMoreMessages.tsx b/components/apps/Messenger/GetMoreMessages.tsx index 76f79962..31f435bc 100644 --- a/components/apps/Messenger/GetMoreMessages.tsx +++ b/components/apps/Messenger/GetMoreMessages.tsx @@ -1,7 +1,9 @@ -import type { TimeScale } from "components/apps/Messenger/HistoryContext"; -import { useHistoryContext } from "components/apps/Messenger/HistoryContext"; -import StyledGetMoreMessages from "components/apps/Messenger/StyledGetMoreMessages"; import { useState } from "react"; +import { + type TimeScale, + useHistoryContext, +} from "components/apps/Messenger/HistoryContext"; +import StyledGetMoreMessages from "components/apps/Messenger/StyledGetMoreMessages"; import Button from "styles/common/Button"; import { MILLISECONDS_IN_DAY } from "utils/constants"; diff --git a/components/apps/Messenger/HistoryContext.tsx b/components/apps/Messenger/HistoryContext.tsx index c32bbb1a..ce477e24 100644 --- a/components/apps/Messenger/HistoryContext.tsx +++ b/components/apps/Messenger/HistoryContext.tsx @@ -1,7 +1,3 @@ -import { SEEN_EVENT_IDS_PATH } from "components/apps/Messenger/constants"; -import type { NostrProfile } from "components/apps/Messenger/types"; -import { useFileSystem } from "contexts/fileSystem"; -import type { Event } from "nostr-tools"; import { createContext, memo, @@ -11,6 +7,10 @@ import { useRef, useState, } from "react"; +import { type Event } from "nostr-tools"; +import { SEEN_EVENT_IDS_PATH } from "components/apps/Messenger/constants"; +import { type NostrProfile } from "components/apps/Messenger/types"; +import { useFileSystem } from "contexts/fileSystem"; type Profiles = Record; diff --git a/components/apps/Messenger/MessageContext.tsx b/components/apps/Messenger/MessageContext.tsx index ef327965..e3bab9d2 100644 --- a/components/apps/Messenger/MessageContext.tsx +++ b/components/apps/Messenger/MessageContext.tsx @@ -1,12 +1,3 @@ -import { useHistoryContext } from "components/apps/Messenger/HistoryContext"; -import { - getKeyFromTags, - getMessages, - groupChatEvents, -} from "components/apps/Messenger/functions"; -import { useNostrEvents } from "components/apps/Messenger/hooks"; -import type { ChatEvents } from "components/apps/Messenger/types"; -import type { Event } from "nostr-tools"; import { createContext, memo, @@ -16,6 +7,15 @@ import { useMemo, useState, } from "react"; +import { type Event } from "nostr-tools"; +import { useHistoryContext } from "components/apps/Messenger/HistoryContext"; +import { + getKeyFromTags, + getMessages, + groupChatEvents, +} from "components/apps/Messenger/functions"; +import { useNostrEvents } from "components/apps/Messenger/hooks"; +import { type ChatEvents } from "components/apps/Messenger/types"; type MessageData = { allEventsReceived: boolean; diff --git a/components/apps/Messenger/NostrContext.tsx b/components/apps/Messenger/NostrContext.tsx index 33b37f0c..5c07f4e2 100644 --- a/components/apps/Messenger/NostrContext.tsx +++ b/components/apps/Messenger/NostrContext.tsx @@ -1,5 +1,4 @@ -import type { Event as NostrEvent, Relay } from "nostr-tools"; -import { relayInit } from "nostr-tools"; +import { type Event as NostrEvent, type Relay, relayInit } from "nostr-tools"; import { createContext, useCallback, diff --git a/components/apps/Messenger/Profile.tsx b/components/apps/Messenger/Profile.tsx index d7510e18..7f17173b 100644 --- a/components/apps/Messenger/Profile.tsx +++ b/components/apps/Messenger/Profile.tsx @@ -1,7 +1,7 @@ +import { useState } from "react"; import { Avatar, Verified } from "components/apps/Messenger/Icons"; import StyledProfile from "components/apps/Messenger/StyledProfile"; import { useNip05Domain } from "components/apps/Messenger/hooks"; -import { useState } from "react"; type ProfileProps = { nip05?: string; diff --git a/components/apps/Messenger/ProfileBanner.tsx b/components/apps/Messenger/ProfileBanner.tsx index 7a9d93fb..b25e7c8b 100644 --- a/components/apps/Messenger/ProfileBanner.tsx +++ b/components/apps/Messenger/ProfileBanner.tsx @@ -1,3 +1,4 @@ +import { useCallback, useMemo } from "react"; import { useHistoryContext } from "components/apps/Messenger/HistoryContext"; import { Back, Write } from "components/apps/Messenger/Icons"; import { useNostr } from "components/apps/Messenger/NostrContext"; @@ -12,9 +13,8 @@ import { getWebSocketStatusIcon, } from "components/apps/Messenger/functions"; import { useNostrProfile } from "components/apps/Messenger/hooks"; -import type { ProfileData } from "components/apps/Messenger/types"; +import { type ProfileData } from "components/apps/Messenger/types"; import { useMenu } from "contexts/menu"; -import { useCallback, useMemo } from "react"; import Button from "styles/common/Button"; import { MENU_SEPERATOR } from "utils/constants"; import { haltEvent } from "utils/functions"; diff --git a/components/apps/Messenger/SanitizedContent.tsx b/components/apps/Messenger/SanitizedContent.tsx index a8e42b48..22fb2cd2 100644 --- a/components/apps/Messenger/SanitizedContent.tsx +++ b/components/apps/Messenger/SanitizedContent.tsx @@ -1,9 +1,9 @@ +import { sanitize } from "dompurify"; +import { useMemo } from "react"; import { convertImageLinksToHtml, convertNewLinesToBreaks, } from "components/apps/Messenger/functions"; -import { sanitize } from "dompurify"; -import { useMemo } from "react"; const SanitizedContent: FC<{ content: string; decrypted: boolean }> = ({ content, diff --git a/components/apps/Messenger/SendMessage.tsx b/components/apps/Messenger/SendMessage.tsx index 1fa871a1..d6c3db51 100644 --- a/components/apps/Messenger/SendMessage.tsx +++ b/components/apps/Messenger/SendMessage.tsx @@ -1,10 +1,10 @@ +import { useCallback, useRef, useState } from "react"; import { Send } from "components/apps/Messenger/Icons"; import { useMessageContext } from "components/apps/Messenger/MessageContext"; import { useNostr } from "components/apps/Messenger/NostrContext"; import StyledSendMessage from "components/apps/Messenger/StyledSendMessage"; import { UNKNOWN_PUBLIC_KEY } from "components/apps/Messenger/constants"; import { createMessageEvent } from "components/apps/Messenger/functions"; -import { useCallback, useRef, useState } from "react"; import Button from "styles/common/Button"; import { haltEvent } from "utils/functions"; diff --git a/components/apps/Messenger/constants.ts b/components/apps/Messenger/constants.ts index 0cebb9be..678a8595 100644 --- a/components/apps/Messenger/constants.ts +++ b/components/apps/Messenger/constants.ts @@ -1,4 +1,4 @@ -import type { MotionProps } from "framer-motion"; +import { type MotionProps } from "framer-motion"; import { HOME, MILLISECONDS_IN_MINUTE, diff --git a/components/apps/Messenger/functions.ts b/components/apps/Messenger/functions.ts index 6756cb1e..425930f7 100644 --- a/components/apps/Messenger/functions.ts +++ b/components/apps/Messenger/functions.ts @@ -1,22 +1,7 @@ -import { - BASE_NIP05_URL, - BASE_RW_RELAYS, - DM_KIND, - GROUP_TIME_GAP_IN_SECONDS, - METADATA_KIND, - PRIVATE_KEY_IDB_NAME, - PUBLIC_KEY_IDB_NAME, - TIME_FORMAT, -} from "components/apps/Messenger/constants"; -import type { - ChatEvents, - DecryptedContent, - NostrEvents, - NostrProfile, - ProfileData, -} from "components/apps/Messenger/types"; -import type { MenuItem } from "contexts/menu/useMenuContextState"; -import type { Event, VerifiedEvent } from "nostr-tools"; +// eslint-disable-next-line import/consistent-type-specifier-style +import type { ProfilePointer } from "nostr-tools/lib/types/nip19"; +// eslint-disable-next-line import/consistent-type-specifier-style +import type { NIP05Result } from "nostr-tools/lib/types/nip05"; import { generatePrivateKey, getEventHash, @@ -27,9 +12,27 @@ import { validateEvent, verifiedSymbol, verifySignature, + type Event, + type VerifiedEvent, } from "nostr-tools"; -import type { NIP05Result } from "nostr-tools/lib/types/nip05"; -import type { ProfilePointer } from "nostr-tools/lib/types/nip19"; +import { + BASE_NIP05_URL, + BASE_RW_RELAYS, + DM_KIND, + GROUP_TIME_GAP_IN_SECONDS, + METADATA_KIND, + PRIVATE_KEY_IDB_NAME, + PUBLIC_KEY_IDB_NAME, + TIME_FORMAT, +} from "components/apps/Messenger/constants"; +import { + type ChatEvents, + type DecryptedContent, + type NostrEvents, + type NostrProfile, + type ProfileData, +} from "components/apps/Messenger/types"; +import { type MenuItem } from "contexts/menu/useMenuContextState"; import { MILLISECONDS_IN_DAY, MILLISECONDS_IN_SECOND } from "utils/constants"; export const getRelayUrls = async (): Promise => { diff --git a/components/apps/Messenger/hooks.ts b/components/apps/Messenger/hooks.ts index 2fe13588..8381d54d 100644 --- a/components/apps/Messenger/hooks.ts +++ b/components/apps/Messenger/hooks.ts @@ -1,3 +1,12 @@ +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +// eslint-disable-next-line import/consistent-type-specifier-style +import type { NIP05Result } from "nostr-tools/lib/types/nip05"; +import { + type Filter, + type Event as NostrEvent, + type Relay, + type Sub, +} from "nostr-tools"; import { useHistoryContext } from "components/apps/Messenger/HistoryContext"; import { useMessageContext } from "components/apps/Messenger/MessageContext"; import { useNostr } from "components/apps/Messenger/NostrContext"; @@ -16,16 +25,13 @@ import { maybeGetExistingPublicKey, toHexKey, } from "components/apps/Messenger/functions"; -import type { - Metadata, - NostrContacts, - NostrProfile, +import { + type Metadata, + type NostrContacts, + type NostrProfile, } from "components/apps/Messenger/types"; import { useProcesses } from "contexts/process"; import directory from "contexts/process/directory"; -import type { Filter, Event as NostrEvent, Relay, Sub } from "nostr-tools"; -import type { NIP05Result } from "nostr-tools/lib/types/nip05"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { PACKAGE_DATA, PROCESS_DELIMITER } from "utils/constants"; export const useNostrEvents = ({ diff --git a/components/apps/Messenger/index.tsx b/components/apps/Messenger/index.tsx index 95181c35..8f3d6f08 100644 --- a/components/apps/Messenger/index.tsx +++ b/components/apps/Messenger/index.tsx @@ -1,3 +1,6 @@ +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { type Event } from "nostr-tools"; +import { AnimatePresence } from "framer-motion"; import ChatLog from "components/apps/Messenger/ChatLog"; import Contact from "components/apps/Messenger/Contact"; import GetMoreMessages from "components/apps/Messenger/GetMoreMessages"; @@ -29,11 +32,8 @@ import { usePublicKey, useUnreadStatus, } from "components/apps/Messenger/hooks"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { useProcesses } from "contexts/process"; -import { AnimatePresence } from "framer-motion"; -import type { Event } from "nostr-tools"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { MILLISECONDS_IN_DAY } from "utils/constants"; import { haltEvent } from "utils/functions"; diff --git a/components/apps/Messenger/types.ts b/components/apps/Messenger/types.ts index 4c9af434..a7f004d3 100644 --- a/components/apps/Messenger/types.ts +++ b/components/apps/Messenger/types.ts @@ -1,4 +1,4 @@ -import type { Event, Filter } from "nostr-tools"; +import { type Event, type Filter } from "nostr-tools"; type RelayPolicy = { read: boolean; write: boolean }; diff --git a/components/apps/MonacoEditor/StatusBar.tsx b/components/apps/MonacoEditor/StatusBar.tsx index 17a2815b..d17e1e71 100644 --- a/components/apps/MonacoEditor/StatusBar.tsx +++ b/components/apps/MonacoEditor/StatusBar.tsx @@ -1,16 +1,16 @@ +import { basename, dirname } from "path"; +import { memo, useEffect, useState } from "react"; import StyledStatusBar from "components/apps/MonacoEditor/StyledStatusBar"; import { getSaveFileInfo } from "components/apps/MonacoEditor/functions"; import { isPrettyLanguage, prettyPrint, } from "components/apps/MonacoEditor/language"; -import type { Model } from "components/apps/MonacoEditor/types"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type Model } from "components/apps/MonacoEditor/types"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import { basename, dirname } from "path"; -import { memo, useEffect, useState } from "react"; import Button from "styles/common/Button"; import { haltEvent, label } from "utils/functions"; diff --git a/components/apps/MonacoEditor/functions.ts b/components/apps/MonacoEditor/functions.ts index 2d2d8311..e153c263 100644 --- a/components/apps/MonacoEditor/functions.ts +++ b/components/apps/MonacoEditor/functions.ts @@ -1,9 +1,9 @@ +import type * as Monaco from "monaco-editor/esm/vs/editor/editor.api"; import { customExtensionLanguages, URL_DELIMITER, } from "components/apps/MonacoEditor/config"; import { monacoExtensions } from "components/apps/MonacoEditor/extensions"; -import type * as Monaco from "monaco-editor/esm/vs/editor/editor.api"; import { DEFAULT_TEXT_FILE_SAVE_PATH } from "utils/constants"; export const detectLanguage = (ext: string): string => { diff --git a/components/apps/MonacoEditor/index.tsx b/components/apps/MonacoEditor/index.tsx index 98b7ef29..b82c0367 100644 --- a/components/apps/MonacoEditor/index.tsx +++ b/components/apps/MonacoEditor/index.tsx @@ -2,7 +2,7 @@ import StatusBar from "components/apps/MonacoEditor/StatusBar"; import StyledMonacoEditor from "components/apps/MonacoEditor/StyledMonacoEditor"; import useMonaco from "components/apps/MonacoEditor/useMonaco"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const MonacoEditor: FC = ({ id }) => ( <> diff --git a/components/apps/MonacoEditor/language.ts b/components/apps/MonacoEditor/language.ts index 539d6925..085b0049 100644 --- a/components/apps/MonacoEditor/language.ts +++ b/components/apps/MonacoEditor/language.ts @@ -1,4 +1,4 @@ -import type { Plugin } from "prettier"; +import { type Plugin } from "prettier"; type Parser = { parser: string; plugins: Plugin[] }; type PrettierPlugin = { default: Plugin }; diff --git a/components/apps/MonacoEditor/useMonaco.ts b/components/apps/MonacoEditor/useMonaco.ts index a59012a0..c18e7389 100644 --- a/components/apps/MonacoEditor/useMonaco.ts +++ b/components/apps/MonacoEditor/useMonaco.ts @@ -1,4 +1,7 @@ +import { basename, dirname } from "path"; +import { useCallback, useEffect, useState } from "react"; import { loader } from "@monaco-editor/react"; +import type * as Monaco from "monaco-editor/esm/vs/editor/editor.api"; import { URL_DELIMITER, config, @@ -9,14 +12,11 @@ import { getSaveFileInfo, relocateShadowRoot, } from "components/apps/MonacoEditor/functions"; -import type { Model } from "components/apps/MonacoEditor/types"; -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { type Model } from "components/apps/MonacoEditor/types"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import type * as Monaco from "monaco-editor/esm/vs/editor/editor.api"; -import { basename, dirname } from "path"; -import { useCallback, useEffect, useState } from "react"; import { DEFAULT_TEXT_FILE_SAVE_PATH, MILLISECONDS_IN_SECOND, diff --git a/components/apps/OpenType/index.tsx b/components/apps/OpenType/index.tsx index 1b37fd6d..c4aa8141 100644 --- a/components/apps/OpenType/index.tsx +++ b/components/apps/OpenType/index.tsx @@ -1,11 +1,11 @@ +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { type Font, type LocalizedName } from "opentype.js"; import StyledOpenType from "components/apps/OpenType/StyledOpenType"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import useFileDrop from "components/system/Files/FileManager/useFileDrop"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; -import type { Font, LocalizedName } from "opentype.js"; -import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { haltEvent } from "utils/functions"; type FontCanvasProps = { diff --git a/components/apps/PDF/Controls.tsx b/components/apps/PDF/Controls.tsx index bd32ce56..f30d1155 100644 --- a/components/apps/PDF/Controls.tsx +++ b/components/apps/PDF/Controls.tsx @@ -1,3 +1,4 @@ +import { basename } from "path"; import { Add, Download, @@ -6,10 +7,9 @@ import { } from "components/apps/PDF//ControlIcons"; import StyledControls from "components/apps/PDF/StyledControls"; import { scales } from "components/apps/PDF/usePDF"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import { basename } from "path"; import Button from "styles/common/Button"; import { MILLISECONDS_IN_SECOND } from "utils/constants"; import { bufferToUrl, isSafari, label } from "utils/functions"; diff --git a/components/apps/PDF/index.tsx b/components/apps/PDF/index.tsx index b7f40b77..5085ef2c 100644 --- a/components/apps/PDF/index.tsx +++ b/components/apps/PDF/index.tsx @@ -2,7 +2,7 @@ import Controls from "components/apps/PDF/Controls"; import StyledPDF from "components/apps/PDF/StyledPDF"; import usePDF from "components/apps/PDF/usePDF"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const PDF: FC = ({ id }) => ( <> diff --git a/components/apps/PDF/usePDF.ts b/components/apps/PDF/usePDF.ts index c896da93..ffc6e068 100644 --- a/components/apps/PDF/usePDF.ts +++ b/components/apps/PDF/usePDF.ts @@ -1,12 +1,12 @@ -import type { MetadataInfo } from "components/apps/PDF/types"; -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { basename } from "path"; +import { useCallback, useEffect, useRef, useState } from "react"; +import { type PDFDocumentProxy } from "pdfjs-dist/types/src/display/api"; +import type * as PdfjsLib from "pdfjs-dist"; +import { type MetadataInfo } from "components/apps/PDF/types"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import { basename } from "path"; -import type * as PdfjsLib from "pdfjs-dist"; -import type { PDFDocumentProxy } from "pdfjs-dist/types/src/display/api"; -import { useCallback, useEffect, useRef, useState } from "react"; import { BASE_2D_CONTEXT_OPTIONS, DEFAULT_SCROLLBAR_WIDTH, diff --git a/components/apps/Paint/index.tsx b/components/apps/Paint/index.tsx index d795d40b..42e2e22a 100644 --- a/components/apps/Paint/index.tsx +++ b/components/apps/Paint/index.tsx @@ -1,14 +1,14 @@ +import { basename, dirname, join } from "path"; +import { useCallback, useEffect, useRef, useState } from "react"; import StyledPaint from "components/apps/Paint/StyledPaint"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledLoading from "components/system/Files/FileManager/StyledLoading"; import useFileDrop from "components/system/Files/FileManager/useFileDrop"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import type { WallpaperFit } from "contexts/session/types"; -import { basename, dirname, join } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { type WallpaperFit } from "contexts/session/types"; import { DESKTOP_PATH, IFRAME_CONFIG, diff --git a/components/apps/Photos/index.tsx b/components/apps/Photos/index.tsx index 10de7755..b61ad0dd 100644 --- a/components/apps/Photos/index.tsx +++ b/components/apps/Photos/index.tsx @@ -1,3 +1,5 @@ +import { basename, dirname, extname, join } from "path"; +import { useCallback, useEffect, useRef, useState } from "react"; import { ExitFullscreen, Fullscreen, @@ -6,15 +8,13 @@ import { } from "components/apps/Photos/PhotoIcons"; import StyledPhotos from "components/apps/Photos/StyledPhotos"; import usePanZoom, { panZoomConfig } from "components/apps/Photos/usePanZoom"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import useFileDrop from "components/system/Files/FileManager/useFileDrop"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import { useViewport } from "contexts/viewport"; import useDoubleClick from "hooks/useDoubleClick"; -import { basename, dirname, extname, join } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; import Button from "styles/common/Button"; import { HIGH_PRIORITY_ELEMENT, diff --git a/components/apps/Photos/usePanZoom.ts b/components/apps/Photos/usePanZoom.ts index ed4fce62..f8cf6687 100644 --- a/components/apps/Photos/usePanZoom.ts +++ b/components/apps/Photos/usePanZoom.ts @@ -1,13 +1,13 @@ -import Panzoom from "@panzoom/panzoom"; -import type { - PanzoomEventDetail, - PanzoomObject, -} from "@panzoom/panzoom/dist/src/types"; -import useTitle from "components/system/Window/useTitle"; -import { useProcesses } from "contexts/process"; -import useResizeObserver from "hooks/useResizeObserver"; import { basename } from "path"; +import Panzoom from "@panzoom/panzoom"; +import { + type PanzoomEventDetail, + type PanzoomObject, +} from "@panzoom/panzoom/dist/src/types"; import { useCallback, useEffect, useState } from "react"; +import useResizeObserver from "hooks/useResizeObserver"; +import { useProcesses } from "contexts/process"; +import useTitle from "components/system/Window/useTitle"; export const panZoomConfig = { cursor: "default", diff --git a/components/apps/Quake3/index.tsx b/components/apps/Quake3/index.tsx index 12b2ebc4..07a18e71 100644 --- a/components/apps/Quake3/index.tsx +++ b/components/apps/Quake3/index.tsx @@ -1,7 +1,7 @@ import StyledQuake3 from "components/apps/Quake3/StyledQuake3"; import useQuake3 from "components/apps/Quake3/useQuake3"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const Quake3: FC = ({ id }) => ( diff --git a/components/apps/Quake3/useQuake3.ts b/components/apps/Quake3/useQuake3.ts index 2ec9f0a8..5a795dcb 100644 --- a/components/apps/Quake3/useQuake3.ts +++ b/components/apps/Quake3/useQuake3.ts @@ -1,10 +1,10 @@ -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { useTheme } from "styled-components"; +import { useEffect, useRef } from "react"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useEmscriptenMount from "components/system/Files/FileManager/useEmscriptenMount"; -import type { EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; +import { type EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { useEffect, useRef } from "react"; -import { useTheme } from "styled-components"; import { TRANSITIONS_IN_MILLISECONDS } from "utils/constants"; import { loadFiles, pxToNum } from "utils/functions"; diff --git a/components/apps/Ruffle/index.tsx b/components/apps/Ruffle/index.tsx index 3e0f2519..1eabe813 100644 --- a/components/apps/Ruffle/index.tsx +++ b/components/apps/Ruffle/index.tsx @@ -1,7 +1,7 @@ import StyledRuffle from "components/apps/Ruffle/StyledRuffle"; import useRuffle from "components/apps/Ruffle/useRuffle"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const Ruffle: FC = ({ id }) => ( diff --git a/components/apps/Ruffle/useRuffle.ts b/components/apps/Ruffle/useRuffle.ts index 02aac089..168c9231 100644 --- a/components/apps/Ruffle/useRuffle.ts +++ b/components/apps/Ruffle/useRuffle.ts @@ -1,10 +1,10 @@ -import type { RufflePlayer } from "components/apps/Ruffle/types"; -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { basename, extname } from "path"; +import { useCallback, useEffect, useState } from "react"; +import { type RufflePlayer } from "components/apps/Ruffle/types"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import { basename, extname } from "path"; -import { useCallback, useEffect, useState } from "react"; import { loadFiles } from "utils/functions"; const useRuffle = ({ diff --git a/components/apps/SpaceCadet/index.tsx b/components/apps/SpaceCadet/index.tsx index b9a6e1dc..5102562e 100644 --- a/components/apps/SpaceCadet/index.tsx +++ b/components/apps/SpaceCadet/index.tsx @@ -1,7 +1,7 @@ import StyledSpaceCadet from "components/apps/SpaceCadet/StyledSpaceCadet"; import useSpaceCadet from "components/apps/SpaceCadet/useSpaceCadet"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { haltEvent } from "utils/functions"; const SpaceCadet: FC = ({ id }) => ( diff --git a/components/apps/SpaceCadet/useSpaceCadet.ts b/components/apps/SpaceCadet/useSpaceCadet.ts index 8edfed89..62607b55 100644 --- a/components/apps/SpaceCadet/useSpaceCadet.ts +++ b/components/apps/SpaceCadet/useSpaceCadet.ts @@ -1,8 +1,8 @@ -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; -import useEmscriptenMount from "components/system/Files/FileManager/useEmscriptenMount"; -import type { EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; -import { useProcesses } from "contexts/process"; import { useEffect, useState } from "react"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; +import useEmscriptenMount from "components/system/Files/FileManager/useEmscriptenMount"; +import { type EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; +import { useProcesses } from "contexts/process"; import { TRANSITIONS_IN_MILLISECONDS } from "utils/constants"; import { loadFiles } from "utils/functions"; diff --git a/components/apps/StableDiffusion/index.tsx b/components/apps/StableDiffusion/index.tsx index b4fd158f..7bf473f1 100644 --- a/components/apps/StableDiffusion/index.tsx +++ b/components/apps/StableDiffusion/index.tsx @@ -1,10 +1,10 @@ +import { useCallback, useMemo, useRef, useState } from "react"; import StyledStableDiffusion from "components/apps/StableDiffusion/StyledStableDiffusion"; -import type { StableDiffusionConfig } from "components/apps/StableDiffusion/types"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type StableDiffusionConfig } from "components/apps/StableDiffusion/types"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { runStableDiffusion } from "components/system/Desktop/Wallpapers/StableDiffusion"; import { useWebGPUCheck } from "hooks/useWebGPUCheck"; import useWorker from "hooks/useWorker"; -import { useCallback, useMemo, useRef, useState } from "react"; type WorkerMessage = { data: { message: string; type: string } }; diff --git a/components/apps/StableDiffusion/sd.worker.ts b/components/apps/StableDiffusion/sd.worker.ts index a2e17692..a30bea73 100644 --- a/components/apps/StableDiffusion/sd.worker.ts +++ b/components/apps/StableDiffusion/sd.worker.ts @@ -1,9 +1,9 @@ -import type { StableDiffusionConfig } from "components/apps/StableDiffusion/types"; +import { type StableDiffusionConfig } from "components/apps/StableDiffusion/types"; import { libs, runStableDiffusion, } from "components/system/Desktop/Wallpapers/StableDiffusion"; -import type { OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; +import { type OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; globalThis.addEventListener( "message", diff --git a/components/apps/Terminal/config.ts b/components/apps/Terminal/config.ts index 879aa2ab..ef81fbcd 100644 --- a/components/apps/Terminal/config.ts +++ b/components/apps/Terminal/config.ts @@ -1,5 +1,5 @@ +import { type ITerminalOptions } from "xterm"; import processDirectory from "contexts/process/directory"; -import type { ITerminalOptions } from "xterm"; export const config: ITerminalOptions = { allowTransparency: true, diff --git a/components/apps/Terminal/functions.ts b/components/apps/Terminal/functions.ts index 817b7fbd..2a2a564d 100644 --- a/components/apps/Terminal/functions.ts +++ b/components/apps/Terminal/functions.ts @@ -1,6 +1,6 @@ import { colorAttributes, rgbAnsi } from "components/apps/Terminal/color"; import { commands as gitCommands } from "components/apps/Terminal/processGit"; -import type { LocalEcho } from "components/apps/Terminal/types"; +import { type LocalEcho } from "components/apps/Terminal/types"; import { resourceAliasMap } from "components/system/Dialogs/Run"; import processDirectory from "contexts/process/directory"; import { ONE_DAY_IN_MILLISECONDS } from "utils/constants"; diff --git a/components/apps/Terminal/index.tsx b/components/apps/Terminal/index.tsx index 59626a40..f8381f90 100644 --- a/components/apps/Terminal/index.tsx +++ b/components/apps/Terminal/index.tsx @@ -1,7 +1,7 @@ import StyledTerminal from "components/apps/Terminal/StyledTerminal"; import useTerminal from "components/apps/Terminal/useTerminal"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const Terminal: FC = ({ id }) => ( Promise; diff --git a/components/apps/Terminal/useCommandInterpreter.ts b/components/apps/Terminal/useCommandInterpreter.ts index 853dc439..5184dbf0 100644 --- a/components/apps/Terminal/useCommandInterpreter.ts +++ b/components/apps/Terminal/useCommandInterpreter.ts @@ -1,3 +1,8 @@ +import { basename, dirname, extname, isAbsolute, join } from "path"; +import { type Terminal } from "xterm"; +import { useTheme } from "styled-components"; +import { useCallback, useEffect, useRef } from "react"; +import type UAParser from "ua-parser-js"; import { colorAttributes, rgbAnsi } from "components/apps/Terminal/color"; import { BACKUP_NAME_SERVER, @@ -20,11 +25,11 @@ import { import loadWapm from "components/apps/Terminal/loadWapm"; import processGit from "components/apps/Terminal/processGit"; import { runPython } from "components/apps/Terminal/python"; -import type { - CommandInterpreter, - LocalEcho, - NsEntry, - NsResponse, +import { + type CommandInterpreter, + type LocalEcho, + type NsEntry, + type NsResponse, } from "components/apps/Terminal/types"; import { displayLicense, @@ -43,10 +48,6 @@ import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; import { useSession } from "contexts/session"; import { useProcessesRef } from "hooks/useProcessesRef"; -import { basename, dirname, extname, isAbsolute, join } from "path"; -import { useCallback, useEffect, useRef } from "react"; -import { useTheme } from "styled-components"; -import type UAParser from "ua-parser-js"; import { DEFAULT_LOCALE, DESKTOP_PATH, @@ -66,7 +67,6 @@ import { convert } from "utils/imagemagick"; import { getIpfsFileName, getIpfsResource } from "utils/ipfs"; import { fullSearch } from "utils/search"; import { convertSheet } from "utils/sheetjs"; -import type { Terminal } from "xterm"; const COMMAND_NOT_SUPPORTED = "The system does not support the command."; const FILE_NOT_FILE = "The system cannot find the file specified."; diff --git a/components/apps/Terminal/useTerminal.ts b/components/apps/Terminal/useTerminal.ts index 928875de..b3bbc718 100644 --- a/components/apps/Terminal/useTerminal.ts +++ b/components/apps/Terminal/useTerminal.ts @@ -1,18 +1,5 @@ -import { PROMPT_CHARACTER, config } from "components/apps/Terminal/config"; -import { autoComplete } from "components/apps/Terminal/functions"; -import type { - FitAddon, - LocalEcho, - OnKeyEvent, -} from "components/apps/Terminal/types"; -import useCommandInterpreter from "components/apps/Terminal/useCommandInterpreter"; -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; -import extensions from "components/system/Files/FileEntry/extensions"; -import { useFileSystem } from "contexts/fileSystem"; -import { useProcesses } from "contexts/process"; -import { useSession } from "contexts/session"; -import useResizeObserver from "hooks/useResizeObserver"; import { extname } from "path"; +import { type IDisposable, type Terminal } from "xterm"; import { useCallback, useEffect, @@ -20,9 +7,22 @@ import { useRef, useState, } from "react"; +import { PROMPT_CHARACTER, config } from "components/apps/Terminal/config"; +import { autoComplete } from "components/apps/Terminal/functions"; +import { + type FitAddon, + type LocalEcho, + type OnKeyEvent, +} from "components/apps/Terminal/types"; +import useCommandInterpreter from "components/apps/Terminal/useCommandInterpreter"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; +import extensions from "components/system/Files/FileEntry/extensions"; +import { useFileSystem } from "contexts/fileSystem"; +import { useProcesses } from "contexts/process"; +import { useSession } from "contexts/session"; +import useResizeObserver from "hooks/useResizeObserver"; import { HOME, PACKAGE_DATA, PREVENT_SCROLL } from "utils/constants"; import { getExtension, haltEvent, isFirefox, loadFiles } from "utils/functions"; -import type { IDisposable, Terminal } from "xterm"; const { alias, author, license, version } = PACKAGE_DATA; diff --git a/components/apps/TinyMCE/functions.ts b/components/apps/TinyMCE/functions.ts index 137037a1..aed7d147 100644 --- a/components/apps/TinyMCE/functions.ts +++ b/components/apps/TinyMCE/functions.ts @@ -1,4 +1,4 @@ -import type { Editor } from "tinymce"; +import { type Editor } from "tinymce"; import { ONE_TIME_PASSIVE_EVENT } from "utils/constants"; export const draggableEditor = (activeEditor: Editor): boolean => diff --git a/components/apps/TinyMCE/index.tsx b/components/apps/TinyMCE/index.tsx index 57315c47..43421733 100644 --- a/components/apps/TinyMCE/index.tsx +++ b/components/apps/TinyMCE/index.tsx @@ -1,7 +1,7 @@ import StyledTinyMceEditor from "components/apps/TinyMCE/StyledTinyMceEditor"; import useTinyMCE from "components/apps/TinyMCE/useTinyMCE"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const TinyMCE: FC = ({ id }) => ( = ({ id }) => ( diff --git a/components/apps/V86/types.ts b/components/apps/V86/types.ts index bf61f6a2..eee6e0e3 100644 --- a/components/apps/V86/types.ts +++ b/components/apps/V86/types.ts @@ -1,5 +1,5 @@ -import type { config } from "components/apps/V86/config"; -import type { V86ImageConfig } from "components/apps/V86/image"; +import { type config } from "components/apps/V86/config"; +import { type V86ImageConfig } from "components/apps/V86/image"; export type SizeCallback = (dimensions: number[]) => void; diff --git a/components/apps/V86/useV86.ts b/components/apps/V86/useV86.ts index 627fa4e4..60b0d691 100644 --- a/components/apps/V86/useV86.ts +++ b/components/apps/V86/useV86.ts @@ -1,25 +1,24 @@ +import { basename, dirname, join } from "path"; +import { useCallback, useEffect, useRef, useState } from "react"; import { BOOT_CD_FD_HD, BOOT_FD_CD_HD, config, saveExtension, } from "components/apps/V86/config"; -import type { V86ImageConfig } from "components/apps/V86/image"; -import { getImageType } from "components/apps/V86/image"; -import type { - NavigatorWithMemory, - V86Config, - V86Starter, +import { type V86ImageConfig, getImageType } from "components/apps/V86/image"; +import { + type NavigatorWithMemory, + type V86Config, + type V86Starter, } from "components/apps/V86/types"; import useV86ScreenSize from "components/apps/V86/useV86ScreenSize"; -import type { ContainerHookProps } from "components/system/Apps/AppContainer"; +import { type ContainerHookProps } from "components/system/Apps/AppContainer"; import useTitle from "components/system/Window/useTitle"; import { useFileSystem } from "contexts/fileSystem"; import { fs9pV4ToV3 } from "contexts/fileSystem/core"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { basename, dirname, join } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; import { ICON_CACHE, ICON_CACHE_EXTENSION, diff --git a/components/apps/V86/useV86ScreenSize.ts b/components/apps/V86/useV86ScreenSize.ts index 7233bc9f..9cb0e1a0 100644 --- a/components/apps/V86/useV86ScreenSize.ts +++ b/components/apps/V86/useV86ScreenSize.ts @@ -1,6 +1,6 @@ -import type { SizeCallback, V86Starter } from "components/apps/V86/types"; -import useWindowSize from "components/system/Window/useWindowSize"; import { useEffect } from "react"; +import { type SizeCallback, type V86Starter } from "components/apps/V86/types"; +import useWindowSize from "components/system/Window/useWindowSize"; const SET_SCREEN_GFX = "screen-set-size-graphical"; const SET_SCREEN_TXT = "screen-set-size-text"; diff --git a/components/apps/VideoPlayer/config.ts b/components/apps/VideoPlayer/config.ts index 35ac2d87..beaf119d 100644 --- a/components/apps/VideoPlayer/config.ts +++ b/components/apps/VideoPlayer/config.ts @@ -1,4 +1,4 @@ -import type { VideoJsPlayerOptions } from "video.js"; +import { type VideoJsPlayerOptions } from "video.js"; export const YT_TYPE = "video/youtube"; diff --git a/components/apps/VideoPlayer/index.tsx b/components/apps/VideoPlayer/index.tsx index 62daa7ae..f774889c 100644 --- a/components/apps/VideoPlayer/index.tsx +++ b/components/apps/VideoPlayer/index.tsx @@ -1,7 +1,7 @@ import StyledVideoPlayer from "components/apps/VideoPlayer/StyledVideoPlayer"; import useVideoPlayer from "components/apps/VideoPlayer/useVideoPlayer"; import AppContainer from "components/system/Apps/AppContainer"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; const VideoPlayer: FC = ({ id }) => ( Promise; type MetadataProvider = (url: string) => MetadataGetter; const removeCData = (string = ""): string => - string.replace(//g, ""); + // eslint-disable-next-line unicorn/better-regex + string.replace(//g, ""); const streamingMetadataProviders: Record = { "somafm.com": (url: string) => async () => { diff --git a/components/apps/Webamp/index.tsx b/components/apps/Webamp/index.tsx index ed881657..d831081c 100644 --- a/components/apps/Webamp/index.tsx +++ b/components/apps/Webamp/index.tsx @@ -1,3 +1,6 @@ +import { basename, extname } from "path"; +import { type Options } from "webamp"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import StyledWebamp from "components/apps/Webamp/StyledWebamp"; import { cleanBufferOnSkinLoad, @@ -7,16 +10,13 @@ import { unFocus, } from "components/apps/Webamp/functions"; import useWebamp from "components/apps/Webamp/useWebamp"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import useFocusable from "components/system/Window/useFocusable"; import useWindowTransitions from "components/system/Window/useWindowTransitions"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import { basename, extname } from "path"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { AUDIO_PLAYLIST_EXTENSIONS } from "utils/constants"; import { bufferToUrl, getExtension, loadFiles } from "utils/functions"; -import type { Options } from "webamp"; const Webamp: FC = ({ id }) => { const containerRef = useRef(null); diff --git a/components/apps/Webamp/types.ts b/components/apps/Webamp/types.ts index 0e56d8a2..8a9188e4 100644 --- a/components/apps/Webamp/types.ts +++ b/components/apps/Webamp/types.ts @@ -1,6 +1,5 @@ -import type { Position } from "react-rnd"; -import type Webamp from "webamp"; -import type { Track } from "webamp"; +import { type Position } from "react-rnd"; +import { type Track, type default as Webamp } from "webamp"; type ButterChurnPreset = { getPreset: () => Promise; diff --git a/components/apps/Webamp/useWebamp.ts b/components/apps/Webamp/useWebamp.ts index 550bf492..852e9cce 100644 --- a/components/apps/Webamp/useWebamp.ts +++ b/components/apps/Webamp/useWebamp.ts @@ -1,3 +1,6 @@ +import { basename, dirname } from "path"; +import { type Options, type Track, type URLTrack } from "webamp"; +import { useCallback, useEffect, useRef } from "react"; import { BASE_WEBAMP_OPTIONS, MAIN_WINDOW, @@ -14,15 +17,13 @@ import { tracksFromPlaylist, updateWebampPosition, } from "components/apps/Webamp/functions"; -import type { SkinData, WebampCI } from "components/apps/Webamp/types"; +import { type SkinData, type WebampCI } from "components/apps/Webamp/types"; import useFileDrop from "components/system/Files/FileManager/useFileDrop"; import useWindowActions from "components/system/Window/Titlebar/useWindowActions"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; import { useSession } from "contexts/session"; -import { basename, dirname } from "path"; -import { useCallback, useEffect, useRef } from "react"; import { AUDIO_PLAYLIST_EXTENSIONS, DESKTOP_PATH, @@ -32,7 +33,6 @@ import { TRANSITIONS_IN_MILLISECONDS, } from "utils/constants"; import { getExtension, haltEvent } from "utils/functions"; -import type { Options, Track, URLTrack } from "webamp"; type Webamp = { initWebamp: (containerElement: HTMLDivElement, options: Options) => void; diff --git a/components/pages/Metadata.tsx b/components/pages/Metadata.tsx index 91052920..5e0fffa0 100644 --- a/components/pages/Metadata.tsx +++ b/components/pages/Metadata.tsx @@ -1,11 +1,11 @@ +import { extname } from "path"; +import { memo, useCallback, useEffect, useMemo, useState } from "react"; +import Head from "next/head"; import { getFirstAniImage } from "components/system/Files/FileEntry/functions"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import Head from "next/head"; -import { extname } from "path"; import desktopIcons from "public/.index/desktopIcons.json"; -import { memo, useCallback, useEffect, useMemo, useState } from "react"; import { FAVICON_BASE_PATH, HIGH_PRIORITY_ELEMENT, diff --git a/components/pages/StyledApp.tsx b/components/pages/StyledApp.tsx index 8372f73c..480496d3 100644 --- a/components/pages/StyledApp.tsx +++ b/components/pages/StyledApp.tsx @@ -1,8 +1,7 @@ -import { useSession } from "contexts/session"; -import type { FeatureBundle } from "framer-motion"; -import { LazyMotion } from "framer-motion"; -import { memo } from "react"; import { StyleSheetManager, ThemeProvider } from "styled-components"; +import { memo } from "react"; +import { type FeatureBundle, LazyMotion } from "framer-motion"; +import { useSession } from "contexts/session"; import GlobalStyle from "styles/GlobalStyle"; import themes from "styles/themes"; import { DEFAULT_THEME } from "utils/constants"; diff --git a/components/system/Apps/AppContainer.tsx b/components/system/Apps/AppContainer.tsx index 70d65f67..9a3f057b 100644 --- a/components/system/Apps/AppContainer.tsx +++ b/components/system/Apps/AppContainer.tsx @@ -1,8 +1,8 @@ -import useFileDrop from "components/system/Files/FileManager/useFileDrop"; -import { useProcesses } from "contexts/process"; import dynamic from "next/dynamic"; import { memo, useMemo, useRef, useState } from "react"; -import type { styled } from "styled-components"; +import { type styled } from "styled-components"; +import useFileDrop from "components/system/Files/FileManager/useFileDrop"; +import { useProcesses } from "contexts/process"; const StyledLoading = dynamic( () => import("components/system/Files/FileManager/StyledLoading") diff --git a/components/system/Apps/AppsLoader.tsx b/components/system/Apps/AppsLoader.tsx index 47de9c0d..12eb3313 100644 --- a/components/system/Apps/AppsLoader.tsx +++ b/components/system/Apps/AppsLoader.tsx @@ -1,7 +1,7 @@ -import { useProcesses } from "contexts/process"; import { AnimatePresence } from "framer-motion"; import dynamic from "next/dynamic"; import { memo } from "react"; +import { useProcesses } from "contexts/process"; const RenderComponent = dynamic( () => import("components/system/Apps/RenderComponent") diff --git a/components/system/Apps/RenderComponent.tsx b/components/system/Apps/RenderComponent.tsx index 15c19d50..921eb636 100644 --- a/components/system/Apps/RenderComponent.tsx +++ b/components/system/Apps/RenderComponent.tsx @@ -1,7 +1,7 @@ -import { ErrorBoundary } from "components/pages/ErrorBoundary"; -import ComponentError from "components/system/Apps/ComponentError"; import dynamic from "next/dynamic"; import { memo } from "react"; +import { ErrorBoundary } from "components/pages/ErrorBoundary"; +import ComponentError from "components/system/Apps/ComponentError"; const Window = dynamic(() => import("components/system/Window")); diff --git a/components/system/Desktop/Wallpapers/Matrix/index.ts b/components/system/Desktop/Wallpapers/Matrix/index.ts index 23a4f51c..c56b79df 100644 --- a/components/system/Desktop/Wallpapers/Matrix/index.ts +++ b/components/system/Desktop/Wallpapers/Matrix/index.ts @@ -1,5 +1,5 @@ import matrixConfig from "components/system/Desktop/Wallpapers/Matrix/config"; -import type { WallpaperConfig } from "components/system/Desktop/Wallpapers/types"; +import { type WallpaperConfig } from "components/system/Desktop/Wallpapers/types"; import { loadFiles } from "utils/functions"; const libs = ["/System/Matrix/js/regl/main.js"]; diff --git a/components/system/Desktop/Wallpapers/ShaderToy/CoastalLandscape/wallpaper.worker.ts b/components/system/Desktop/Wallpapers/ShaderToy/CoastalLandscape/wallpaper.worker.ts index 96330bcb..f92c0a40 100644 --- a/components/system/Desktop/Wallpapers/ShaderToy/CoastalLandscape/wallpaper.worker.ts +++ b/components/system/Desktop/Wallpapers/ShaderToy/CoastalLandscape/wallpaper.worker.ts @@ -1,5 +1,5 @@ import { libs } from "components/system/Desktop/Wallpapers/ShaderToy/CoastalLandscape"; -import type { OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; +import { type OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; /* eslint-disable vars-on-top, no-var */ declare global { diff --git a/components/system/Desktop/Wallpapers/StableDiffusion/index.ts b/components/system/Desktop/Wallpapers/StableDiffusion/index.ts index c4500510..5db2f9cc 100644 --- a/components/system/Desktop/Wallpapers/StableDiffusion/index.ts +++ b/components/system/Desktop/Wallpapers/StableDiffusion/index.ts @@ -1,5 +1,5 @@ -import type { StableDiffusionConfig } from "components/apps/StableDiffusion/types"; -import type { WallpaperConfig } from "components/system/Desktop/Wallpapers/types"; +import { type StableDiffusionConfig } from "components/apps/StableDiffusion/types"; +import { type WallpaperConfig } from "components/system/Desktop/Wallpapers/types"; import { loadFiles } from "utils/functions"; export const libs = [ diff --git a/components/system/Desktop/Wallpapers/constants.ts b/components/system/Desktop/Wallpapers/constants.ts index ddec8bcb..a78d3746 100644 --- a/components/system/Desktop/Wallpapers/constants.ts +++ b/components/system/Desktop/Wallpapers/constants.ts @@ -1,5 +1,5 @@ -import type { WallpaperFunc } from "components/system/Desktop/Wallpapers/types"; -import type { WallpaperFit } from "contexts/session/types"; +import { type WallpaperFunc } from "components/system/Desktop/Wallpapers/types"; +import { type WallpaperFit } from "contexts/session/types"; export const bgPositionSize: Record = { center: "center center", diff --git a/components/system/Desktop/Wallpapers/hexells/wallpaper.worker.ts b/components/system/Desktop/Wallpapers/hexells/wallpaper.worker.ts index d0aa8316..9770e7e1 100644 --- a/components/system/Desktop/Wallpapers/hexells/wallpaper.worker.ts +++ b/components/system/Desktop/Wallpapers/hexells/wallpaper.worker.ts @@ -1,5 +1,5 @@ import { libs } from "components/system/Desktop/Wallpapers/hexells"; -import type { OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; +import { type OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; /* eslint-disable vars-on-top, no-var */ declare global { diff --git a/components/system/Desktop/Wallpapers/types.ts b/components/system/Desktop/Wallpapers/types.ts index c9fb0188..51923e96 100644 --- a/components/system/Desktop/Wallpapers/types.ts +++ b/components/system/Desktop/Wallpapers/types.ts @@ -1,7 +1,7 @@ -import type { StableDiffusionConfig } from "components/apps/StableDiffusion/types"; +import { type StableDiffusionConfig } from "components/apps/StableDiffusion/types"; +import { type VantaWavesConfig } from "components/system/Desktop/Wallpapers/vantaWaves/types"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; import type MatrixConfig from "components/system/Desktop/Wallpapers/Matrix/config"; -import type { VantaWavesConfig } from "components/system/Desktop/Wallpapers/vantaWaves/types"; -import type { Size } from "components/system/Window/RndWindow/useResizable"; export type WallpaperConfig = | Partial diff --git a/components/system/Desktop/Wallpapers/useWallpaper.ts b/components/system/Desktop/Wallpapers/useWallpaper.ts index 8c163d4c..628c9ecc 100644 --- a/components/system/Desktop/Wallpapers/useWallpaper.ts +++ b/components/system/Desktop/Wallpapers/useWallpaper.ts @@ -1,3 +1,6 @@ +import { join } from "path"; +import { useTheme } from "styled-components"; +import { useCallback, useEffect, useRef } from "react"; import { BASE_CANVAS_SELECTOR, BASE_VIDEO_SELECTOR, @@ -5,14 +8,11 @@ import { WALLPAPER_WORKERS, bgPositionSize, } from "components/system/Desktop/Wallpapers/constants"; -import type { WallpaperConfig } from "components/system/Desktop/Wallpapers/types"; +import { type WallpaperConfig } from "components/system/Desktop/Wallpapers/types"; import { config as vantaConfig } from "components/system/Desktop/Wallpapers/vantaWaves/config"; import { useFileSystem } from "contexts/fileSystem"; import { useSession } from "contexts/session"; import useWorker from "hooks/useWorker"; -import { join } from "path"; -import { useCallback, useEffect, useRef } from "react"; -import { useTheme } from "styled-components"; import { DEFAULT_LOCALE, HIGH_PRIORITY_REQUEST, @@ -105,7 +105,7 @@ const useWallpaper = ( document.documentElement.style.setProperty( "background", - document.documentElement.style.background.replace(/"(.*)"/, "") + document.documentElement.style.background.replace(/".*"/, "") ); if (!keepCanvas) { diff --git a/components/system/Desktop/Wallpapers/vantaWaves/config.ts b/components/system/Desktop/Wallpapers/vantaWaves/config.ts index ce3b9e3e..b0788fc6 100644 --- a/components/system/Desktop/Wallpapers/vantaWaves/config.ts +++ b/components/system/Desktop/Wallpapers/vantaWaves/config.ts @@ -1,4 +1,4 @@ -import type { VantaWavesConfig } from "components/system/Desktop/Wallpapers/vantaWaves/types"; +import { type VantaWavesConfig } from "components/system/Desktop/Wallpapers/vantaWaves/types"; export const config: VantaWavesConfig = { camera: { diff --git a/components/system/Desktop/Wallpapers/vantaWaves/index.ts b/components/system/Desktop/Wallpapers/vantaWaves/index.ts index ea30b11b..7ab0e726 100644 --- a/components/system/Desktop/Wallpapers/vantaWaves/index.ts +++ b/components/system/Desktop/Wallpapers/vantaWaves/index.ts @@ -1,9 +1,9 @@ -import type { WallpaperConfig } from "components/system/Desktop/Wallpapers/types"; +import { type WallpaperConfig } from "components/system/Desktop/Wallpapers/types"; import { disableControls, libs, } from "components/system/Desktop/Wallpapers/vantaWaves/config"; -import type { VantaWavesConfig } from "components/system/Desktop/Wallpapers/vantaWaves/types"; +import { type VantaWavesConfig } from "components/system/Desktop/Wallpapers/vantaWaves/types"; import { loadFiles } from "utils/functions"; const vantaWaves = ( diff --git a/components/system/Desktop/Wallpapers/vantaWaves/types.ts b/components/system/Desktop/Wallpapers/vantaWaves/types.ts index e6d78c19..3c87104b 100644 --- a/components/system/Desktop/Wallpapers/vantaWaves/types.ts +++ b/components/system/Desktop/Wallpapers/vantaWaves/types.ts @@ -1,4 +1,4 @@ -import type { OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; +import { type OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; type VantaWavesCycleColor = { colorCycleSpeed?: number; diff --git a/components/system/Desktop/Wallpapers/vantaWaves/wallpaper.worker.ts b/components/system/Desktop/Wallpapers/vantaWaves/wallpaper.worker.ts index 81f15d3d..e9dc5e52 100644 --- a/components/system/Desktop/Wallpapers/vantaWaves/wallpaper.worker.ts +++ b/components/system/Desktop/Wallpapers/vantaWaves/wallpaper.worker.ts @@ -1,13 +1,13 @@ -import type { OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; +import { type OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; import { config, disableControls, libs, } from "components/system/Desktop/Wallpapers/vantaWaves/config"; -import type { - VantaObject, - VantaWaves, - VantaWavesConfig, +import { + type VantaObject, + type VantaWaves, + type VantaWavesConfig, } from "components/system/Desktop/Wallpapers/vantaWaves/types"; declare global { diff --git a/components/system/Desktop/index.tsx b/components/system/Desktop/index.tsx index e43f2975..58cd36be 100644 --- a/components/system/Desktop/index.tsx +++ b/components/system/Desktop/index.tsx @@ -1,8 +1,8 @@ +import { useRef } from "react"; import StyledDesktop from "components/system/Desktop/StyledDesktop"; import useWallpaper from "components/system/Desktop/Wallpapers/useWallpaper"; import FileManager from "components/system/Files/FileManager"; import useHeightOverride from "hooks/useHeightOverride"; -import { useRef } from "react"; import { DESKTOP_PATH } from "utils/constants"; const Desktop: FC = ({ children }) => { diff --git a/components/system/Dialogs/OpenWith/index.tsx b/components/system/Dialogs/OpenWith/index.tsx index e802aede..67577ae0 100644 --- a/components/system/Dialogs/OpenWith/index.tsx +++ b/components/system/Dialogs/OpenWith/index.tsx @@ -1,11 +1,11 @@ -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { memo, useCallback, useEffect, useRef, useState } from "react"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledOpenWith from "components/system/Dialogs/OpenWith/StyledOpenWith"; import StyledOpenWithList from "components/system/Dialogs/OpenWith/StyledOpenWithList"; import { getProcessByFileExtension } from "components/system/Files/FileEntry/functions"; import { useProcesses } from "contexts/process"; import directory from "contexts/process/directory"; import { useSession } from "contexts/session"; -import { memo, useCallback, useEffect, useRef, useState } from "react"; import Button from "styles/common/Button"; import Icon from "styles/common/Icon"; import { TRANSITIONS_IN_MILLISECONDS } from "utils/constants"; diff --git a/components/system/Dialogs/Properties/GeneralTab.tsx b/components/system/Dialogs/Properties/GeneralTab.tsx index a078baff..f499553e 100644 --- a/components/system/Dialogs/Properties/GeneralTab.tsx +++ b/components/system/Dialogs/Properties/GeneralTab.tsx @@ -1,15 +1,17 @@ +import { basename, dirname, extname, join } from "path"; +import { memo, useEffect, useMemo, useRef, useState } from "react"; import Buttons from "components/system/Dialogs/Properties/Buttons"; import useStats from "components/system/Dialogs/Properties/useStats"; import extensions from "components/system/Files/FileEntry/extensions"; import { getModifiedTime } from "components/system/Files/FileEntry/functions"; -import type { FileStat } from "components/system/Files/FileManager/functions"; -import { removeInvalidFilenameCharacters } from "components/system/Files/FileManager/functions"; +import { + type FileStat, + removeInvalidFilenameCharacters, +} from "components/system/Files/FileManager/functions"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import directory from "contexts/process/directory"; import { useSession } from "contexts/session"; -import { basename, dirname, extname, join } from "path"; -import { memo, useEffect, useMemo, useRef, useState } from "react"; import Icon from "styles/common/Icon"; import { DEFAULT_LOCALE, DESKTOP_PATH, SHORTCUT_ICON } from "utils/constants"; import { getExtension, getFormattedSize } from "utils/functions"; diff --git a/components/system/Dialogs/Properties/index.tsx b/components/system/Dialogs/Properties/index.tsx index 2a1cc239..8a35dcb7 100644 --- a/components/system/Dialogs/Properties/index.tsx +++ b/components/system/Dialogs/Properties/index.tsx @@ -1,4 +1,6 @@ -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { basename, extname } from "path"; +import { useEffect, useRef } from "react"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import GeneralTab from "components/system/Dialogs/Properties/GeneralTab"; import StyledProperties from "components/system/Dialogs/Properties/StyledProperties"; import useStats from "components/system/Dialogs/Properties/useStats"; @@ -6,8 +8,6 @@ import StyledButton from "components/system/Dialogs/StyledButton"; import useFileInfo from "components/system/Files/FileEntry/useFileInfo"; import useTitle from "components/system/Window/useTitle"; import { useProcesses } from "contexts/process"; -import { basename, extname } from "path"; -import { useEffect, useRef } from "react"; import { FOCUSABLE_ELEMENT } from "utils/constants"; import { haltEvent } from "utils/functions"; diff --git a/components/system/Dialogs/Properties/useStats.ts b/components/system/Dialogs/Properties/useStats.ts index 4ddce394..50e6af6d 100644 --- a/components/system/Dialogs/Properties/useStats.ts +++ b/components/system/Dialogs/Properties/useStats.ts @@ -1,6 +1,6 @@ +import { useEffect, useState } from "react"; import type Stats from "browserfs/dist/node/core/node_fs_stats"; import { useFileSystem } from "contexts/fileSystem"; -import { useEffect, useState } from "react"; const useStats = (url: string): Stats | undefined => { const { stat } = useFileSystem(); diff --git a/components/system/Dialogs/Run/StyledRun.ts b/components/system/Dialogs/Run/StyledRun.ts index c58560c1..6de9e2d6 100644 --- a/components/system/Dialogs/Run/StyledRun.ts +++ b/components/system/Dialogs/Run/StyledRun.ts @@ -1,5 +1,5 @@ -import StyledButton from "components/system/Dialogs/StyledButton"; import styled from "styled-components"; +import StyledButton from "components/system/Dialogs/StyledButton"; const StyledRun = styled.div` background-color: #fff; diff --git a/components/system/Dialogs/Run/index.tsx b/components/system/Dialogs/Run/index.tsx index 0685b697..a2c45dda 100644 --- a/components/system/Dialogs/Run/index.tsx +++ b/components/system/Dialogs/Run/index.tsx @@ -1,5 +1,7 @@ +import { basename, join } from "path"; +import { useCallback, useLayoutEffect, useRef, useState } from "react"; import { parseCommand } from "components/apps/Terminal/functions"; -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledRun from "components/system/Dialogs/Run/StyledRun"; import StyledButton from "components/system/Dialogs/StyledButton"; import { @@ -11,8 +13,6 @@ import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; import { useSession } from "contexts/session"; -import { basename, join } from "path"; -import { useCallback, useLayoutEffect, useRef, useState } from "react"; import { DESKTOP_PATH, PACKAGE_DATA, diff --git a/components/system/Dialogs/Transfer/StyledTransfer.ts b/components/system/Dialogs/Transfer/StyledTransfer.ts index f86dd64b..a34fa5ea 100644 --- a/components/system/Dialogs/Transfer/StyledTransfer.ts +++ b/components/system/Dialogs/Transfer/StyledTransfer.ts @@ -1,5 +1,5 @@ -import StyledButton from "components/system/Dialogs/StyledButton"; import styled, { css } from "styled-components"; +import StyledButton from "components/system/Dialogs/StyledButton"; const gradientAnimation = css` animation: gradient 5s ease-in-out alternate infinite; diff --git a/components/system/Dialogs/Transfer/index.tsx b/components/system/Dialogs/Transfer/index.tsx index e64b18d7..cfb248a9 100644 --- a/components/system/Dialogs/Transfer/index.tsx +++ b/components/system/Dialogs/Transfer/index.tsx @@ -1,14 +1,14 @@ -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; -import StyledButton from "components/system/Dialogs/StyledButton"; -import StyledTransfer from "components/system/Dialogs/Transfer/StyledTransfer"; -import type { - FileReaders, - ObjectReaders, - Operation, -} from "components/system/Dialogs/Transfer/useTransferDialog"; -import { useProcesses } from "contexts/process"; import { basename, dirname } from "path"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import StyledButton from "components/system/Dialogs/StyledButton"; +import StyledTransfer from "components/system/Dialogs/Transfer/StyledTransfer"; +import { + type FileReaders, + type ObjectReaders, + type Operation, +} from "components/system/Dialogs/Transfer/useTransferDialog"; +import { useProcesses } from "contexts/process"; import { ONE_TIME_PASSIVE_EVENT } from "utils/constants"; import { haltEvent } from "utils/functions"; diff --git a/components/system/Dialogs/Transfer/useTransferDialog.ts b/components/system/Dialogs/Transfer/useTransferDialog.ts index 055027d8..322ba59d 100644 --- a/components/system/Dialogs/Transfer/useTransferDialog.ts +++ b/components/system/Dialogs/Transfer/useTransferDialog.ts @@ -1,8 +1,8 @@ +import { useEffect, useMemo, useRef } from "react"; import { getShortcutInfo } from "components/system/Files/FileEntry/functions"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import { useProcessesRef } from "hooks/useProcessesRef"; -import { useEffect, useMemo, useRef } from "react"; import { PROCESS_DELIMITER, SHORTCUT_EXTENSION } from "utils/constants"; import { getExtension } from "utils/functions"; diff --git a/components/system/Files/FileEntry/RenameBox.tsx b/components/system/Files/FileEntry/RenameBox.tsx index 22a6017c..4961a6c2 100644 --- a/components/system/Files/FileEntry/RenameBox.tsx +++ b/components/system/Files/FileEntry/RenameBox.tsx @@ -1,8 +1,8 @@ -import StyledRenameBox from "components/system/Files/FileEntry/StyledRenameBox"; -import { getTextWrapData } from "components/system/Files/FileEntry/functions"; import { extname } from "path"; -import { useCallback, useLayoutEffect, useRef } from "react"; import { useTheme } from "styled-components"; +import { useCallback, useLayoutEffect, useRef } from "react"; +import { getTextWrapData } from "components/system/Files/FileEntry/functions"; +import StyledRenameBox from "components/system/Files/FileEntry/StyledRenameBox"; import { PREVENT_SCROLL } from "utils/constants"; import { haltEvent } from "utils/functions"; diff --git a/components/system/Files/FileEntry/SubIcons.tsx b/components/system/Files/FileEntry/SubIcons.tsx index a00f9d4c..5be0bfe1 100644 --- a/components/system/Files/FileEntry/SubIcons.tsx +++ b/components/system/Files/FileEntry/SubIcons.tsx @@ -1,6 +1,8 @@ -import type { FileManagerViewNames } from "components/system/Files/Views"; -import { FileEntryIconSize } from "components/system/Files/Views"; import { memo, useMemo } from "react"; +import { + type FileManagerViewNames, + FileEntryIconSize, +} from "components/system/Files/Views"; import Icon from "styles/common/Icon"; import { FOLDER_BACK_ICON, diff --git a/components/system/Files/FileEntry/exeIcons.ts b/components/system/Files/FileEntry/exeIcons.ts index 156b8bc9..68a247e3 100644 --- a/components/system/Files/FileEntry/exeIcons.ts +++ b/components/system/Files/FileEntry/exeIcons.ts @@ -1,12 +1,11 @@ -import type { - IconGroupEntry, - IconGroupItem, - ResourceEntry, +import { + type IconGroupEntry, + type IconGroupItem, + type ResourceEntry, } from "resedit/dist/resource"; const RESERVED = 0; const ICON_TYPE = { - CUR: 2, ICO: 1, }; diff --git a/components/system/Files/FileEntry/functions.ts b/components/system/Files/FileEntry/functions.ts index 3165a714..3cbae28b 100644 --- a/components/system/Files/FileEntry/functions.ts +++ b/components/system/Files/FileEntry/functions.ts @@ -1,14 +1,14 @@ -import type { FSModule } from "browserfs/dist/node/core/FS"; +import { join } from "path"; +import ini from "ini"; +import { type FSModule } from "browserfs/dist/node/core/FS"; import { monacoExtensions } from "components/apps/MonacoEditor/extensions"; import extensions from "components/system/Files/FileEntry/extensions"; -import type { FileInfo } from "components/system/Files/FileEntry/useFileInfo"; -import type { FileStat } from "components/system/Files/FileManager/functions"; +import { type FileInfo } from "components/system/Files/FileEntry/useFileInfo"; +import { type FileStat } from "components/system/Files/FileManager/functions"; import { get9pModifiedTime } from "contexts/fileSystem/core"; import { isMountedFolder } from "contexts/fileSystem/functions"; -import type { RootFileSystem } from "contexts/fileSystem/useAsyncFs"; +import { type RootFileSystem } from "contexts/fileSystem/useAsyncFs"; import processDirectory from "contexts/process/directory"; -import ini from "ini"; -import { join } from "path"; import { AUDIO_FILE_EXTENSIONS, BASE_2D_CONTEXT_OPTIONS, @@ -240,21 +240,22 @@ export const makeExternalShortcut = (contents: Buffer): Buffer => { }; const getIconsFromCache = (fs: FSModule, path: string): Promise => - new Promise((resolveIcons) => { + new Promise((resolve) => { const iconCacheDirectory = join(ICON_CACHE, path); fs?.readdir( iconCacheDirectory, async (dirError, [firstIcon, ...otherIcons] = []) => { - if (dirError) resolveIcons([]); + if (dirError) resolve([]); else { - resolveIcons( + resolve( ( await Promise.all( [firstIcon, otherIcons[otherIcons.length - 1]] .filter(Boolean) .map( (cachedIcon): Promise => + // eslint-disable-next-line promise/param-names new Promise((resolveIcon) => { fs?.readFile( join(iconCacheDirectory, cachedIcon), diff --git a/components/system/Files/FileEntry/index.tsx b/components/system/Files/FileEntry/index.tsx index f3d84c58..c2a26287 100644 --- a/components/system/Files/FileEntry/index.tsx +++ b/components/system/Files/FileEntry/index.tsx @@ -1,3 +1,15 @@ +import { basename, dirname, extname, join } from "path"; +import { useTheme } from "styled-components"; +import { + useCallback, + useEffect, + useLayoutEffect, + useMemo, + useRef, + useState, +} from "react"; +import dynamic from "next/dynamic"; +import { m as motion } from "framer-motion"; import StyledFigure from "components/system/Files/FileEntry/StyledFigure"; import SubIcons from "components/system/Files/FileEntry/SubIcons"; import extensions from "components/system/Files/FileEntry/extensions"; @@ -10,28 +22,18 @@ import useFileContextMenu from "components/system/Files/FileEntry/useFileContext import useFileInfo from "components/system/Files/FileEntry/useFileInfo"; import FileManager from "components/system/Files/FileManager"; import { isSelectionIntersecting } from "components/system/Files/FileManager/Selection/functions"; -import type { SelectionRect } from "components/system/Files/FileManager/Selection/useSelection"; -import type { FileStat } from "components/system/Files/FileManager/functions"; +import { type SelectionRect } from "components/system/Files/FileManager/Selection/useSelection"; +import { type FileStat } from "components/system/Files/FileManager/functions"; import useFileDrop from "components/system/Files/FileManager/useFileDrop"; -import type { FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; -import type { FileActions } from "components/system/Files/FileManager/useFolder"; -import type { FileManagerViewNames } from "components/system/Files/Views"; -import { FileEntryIconSize } from "components/system/Files/Views"; +import { type FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; +import { type FileActions } from "components/system/Files/FileManager/useFolder"; +import { + type FileManagerViewNames, + FileEntryIconSize, +} from "components/system/Files/Views"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; -import { m as motion } from "framer-motion"; import useDoubleClick from "hooks/useDoubleClick"; -import dynamic from "next/dynamic"; -import { basename, dirname, extname, join } from "path"; -import { - useCallback, - useEffect, - useLayoutEffect, - useMemo, - useRef, - useState, -} from "react"; -import { useTheme } from "styled-components"; import Button from "styles/common/Button"; import Icon from "styles/common/Icon"; import { @@ -372,7 +374,7 @@ const FileEntry: FC = ({ await mkdirRecursive(baseCachedPath); const cachedIcon = Buffer.from( - generatedIcon.replace(/data:(.*);base64,/, ""), + generatedIcon.replace(/data:.*;base64,/, ""), "base64" ); diff --git a/components/system/Files/FileEntry/useFile.ts b/components/system/Files/FileEntry/useFile.ts index aa6e2aa8..334844c2 100644 --- a/components/system/Files/FileEntry/useFile.ts +++ b/components/system/Files/FileEntry/useFile.ts @@ -1,10 +1,10 @@ +import { basename, join } from "path"; +import { useCallback } from "react"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; import { useSession } from "contexts/session"; import { useProcessesRef } from "hooks/useProcessesRef"; -import { basename, join } from "path"; -import { useCallback } from "react"; import { DESKTOP_PATH, FOLDER_BACK_ICON, diff --git a/components/system/Files/FileEntry/useFileContextMenu.ts b/components/system/Files/FileEntry/useFileContextMenu.ts index 7f296102..5f245d50 100644 --- a/components/system/Files/FileEntry/useFileContextMenu.ts +++ b/components/system/Files/FileEntry/useFileContextMenu.ts @@ -1,22 +1,23 @@ +import { basename, dirname, extname, join } from "path"; +import { type URLTrack } from "webamp"; +import { useMemo } from "react"; import { EXTRACTABLE_EXTENSIONS } from "components/system/Files/FileEntry/constants"; import extensions from "components/system/Files/FileEntry/extensions"; import { getProcessByFileExtension } from "components/system/Files/FileEntry/functions"; import useFile from "components/system/Files/FileEntry/useFile"; -import type { FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; -import type { FileActions } from "components/system/Files/FileManager/useFolder"; +import { type FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; +import { type FileActions } from "components/system/Files/FileManager/useFolder"; import { useFileSystem } from "contexts/fileSystem"; import { isMountedFolder } from "contexts/fileSystem/functions"; import { useMenu } from "contexts/menu"; -import type { - ContextMenuCapture, - MenuItem, +import { + type ContextMenuCapture, + type MenuItem, } from "contexts/menu/useMenuContextState"; import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; import { useSession } from "contexts/session"; import { useProcessesRef } from "hooks/useProcessesRef"; -import { basename, dirname, extname, join } from "path"; -import { useMemo } from "react"; import { AUDIO_PLAYLIST_EXTENSIONS, CURSOR_FILE_EXTENSIONS, @@ -40,7 +41,7 @@ import { VIDEO_DECODE_FORMATS, VIDEO_ENCODE_FORMATS, } from "utils/ffmpeg/formats"; -import type { FFmpegTranscodeFile } from "utils/ffmpeg/types"; +import { type FFmpegTranscodeFile } from "utils/ffmpeg/types"; import { getExtension, isFirefox, @@ -51,8 +52,7 @@ import { IMAGE_DECODE_FORMATS, IMAGE_ENCODE_FORMATS, } from "utils/imagemagick/formats"; -import type { ImageMagickConvertFile } from "utils/imagemagick/types"; -import type { URLTrack } from "webamp"; +import { type ImageMagickConvertFile } from "utils/imagemagick/types"; const { alias } = PACKAGE_DATA; diff --git a/components/system/Files/FileEntry/useFileInfo.ts b/components/system/Files/FileEntry/useFileInfo.ts index 0bc58dbe..ba6db922 100644 --- a/components/system/Files/FileEntry/useFileInfo.ts +++ b/components/system/Files/FileEntry/useFileInfo.ts @@ -1,10 +1,10 @@ +import { useEffect, useRef, useState } from "react"; import { getInfoWithExtension, getInfoWithoutExtension, } from "components/system/Files/FileEntry/functions"; import { useFileSystem } from "contexts/fileSystem"; import { isMountedFolder } from "contexts/fileSystem/functions"; -import { useEffect, useRef, useState } from "react"; import { MOUNTABLE_EXTENSIONS } from "utils/constants"; import { getExtension } from "utils/functions"; diff --git a/components/system/Files/FileManager/Selection/functions.ts b/components/system/Files/FileManager/Selection/functions.ts index dadb2662..0a36ac1c 100644 --- a/components/system/Files/FileManager/Selection/functions.ts +++ b/components/system/Files/FileManager/Selection/functions.ts @@ -1,4 +1,4 @@ -import type { SelectionRect } from "components/system/Files/FileManager/Selection/useSelection"; +import { type SelectionRect } from "components/system/Files/FileManager/Selection/useSelection"; export const isSelectionIntersecting = ( element: DOMRect, diff --git a/components/system/Files/FileManager/Selection/useSelection.ts b/components/system/Files/FileManager/Selection/useSelection.ts index 26bd6a22..fff2ded9 100644 --- a/components/system/Files/FileManager/Selection/useSelection.ts +++ b/components/system/Files/FileManager/Selection/useSelection.ts @@ -1,9 +1,9 @@ -import type { FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; -import type { Size } from "components/system/Window/RndWindow/useResizable"; -import { useMenu } from "contexts/menu"; -import type { MenuState } from "contexts/menu/useMenuContextState"; +import { type Position } from "react-rnd"; import { useRef, useState } from "react"; -import type { Position } from "react-rnd"; +import { type FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; +import { useMenu } from "contexts/menu"; +import { type MenuState } from "contexts/menu/useMenuContextState"; import { MILLISECONDS_IN_SECOND } from "utils/constants"; export type SelectionRect = Partial & Partial; diff --git a/components/system/Files/FileManager/StatusBar.tsx b/components/system/Files/FileManager/StatusBar.tsx index 4f57f2ca..59a7d83e 100644 --- a/components/system/Files/FileManager/StatusBar.tsx +++ b/components/system/Files/FileManager/StatusBar.tsx @@ -1,7 +1,3 @@ -import StyledStatusBar from "components/system/Files/FileManager/StyledStatusBar"; -import type { FileDrop } from "components/system/Files/FileManager/useFileDrop"; -import { useFileSystem } from "contexts/fileSystem"; -import useResizeObserver from "hooks/useResizeObserver"; import { join } from "path"; import { useCallback, @@ -10,6 +6,10 @@ import { useRef, useState, } from "react"; +import StyledStatusBar from "components/system/Files/FileManager/StyledStatusBar"; +import { type FileDrop } from "components/system/Files/FileManager/useFileDrop"; +import { useFileSystem } from "contexts/fileSystem"; +import useResizeObserver from "hooks/useResizeObserver"; import { getFormattedSize, haltEvent, label } from "utils/functions"; type StatusBarProps = { diff --git a/components/system/Files/FileManager/functions.ts b/components/system/Files/FileManager/functions.ts index 517c86b9..1f8e9e40 100644 --- a/components/system/Files/FileManager/functions.ts +++ b/components/system/Files/FileManager/functions.ts @@ -1,17 +1,17 @@ +import { basename, dirname, extname, join } from "path"; import type Stats from "browserfs/dist/node/core/node_fs_stats"; -import type { - FileReaders, - ObjectReader, - ObjectReaders, +import { + type FileReaders, + type ObjectReader, + type ObjectReaders, } from "components/system/Dialogs/Transfer/useTransferDialog"; import { getModifiedTime } from "components/system/Files/FileEntry/functions"; -import type { - Files, - NewPath, +import { + type Files, + type NewPath, + COMPLETE_ACTION, } from "components/system/Files/FileManager/useFolder"; -import { COMPLETE_ACTION } from "components/system/Files/FileManager/useFolder"; -import type { SortBy } from "components/system/Files/FileManager/useSortBy"; -import { basename, dirname, extname, join } from "path"; +import { type SortBy } from "components/system/Files/FileManager/useSortBy"; import { ONE_TIME_PASSIVE_EVENT, ROOT_SHORTCUT } from "utils/constants"; import { haltEvent } from "utils/functions"; diff --git a/components/system/Files/FileManager/index.tsx b/components/system/Files/FileManager/index.tsx index e00270ff..384f612d 100644 --- a/components/system/Files/FileManager/index.tsx +++ b/components/system/Files/FileManager/index.tsx @@ -1,3 +1,6 @@ +import { basename, join } from "path"; +import { memo, useEffect, useMemo, useRef, useState } from "react"; +import dynamic from "next/dynamic"; import FileEntry from "components/system/Files/FileEntry"; import StyledSelection from "components/system/Files/FileManager/Selection/StyledSelection"; import useSelection from "components/system/Files/FileManager/Selection/useSelection"; @@ -7,12 +10,11 @@ import useFileKeyboardShortcuts from "components/system/Files/FileManager/useFil import useFocusableEntries from "components/system/Files/FileManager/useFocusableEntries"; import useFolder from "components/system/Files/FileManager/useFolder"; import useFolderContextMenu from "components/system/Files/FileManager/useFolderContextMenu"; -import type { FileManagerViewNames } from "components/system/Files/Views"; -import { FileManagerViews } from "components/system/Files/Views"; +import { + type FileManagerViewNames, + FileManagerViews, +} from "components/system/Files/Views"; import { useFileSystem } from "contexts/fileSystem"; -import dynamic from "next/dynamic"; -import { basename, join } from "path"; -import { memo, useEffect, useMemo, useRef, useState } from "react"; import { FOCUSABLE_ELEMENT, MOUNTABLE_EXTENSIONS, diff --git a/components/system/Files/FileManager/useDraggableEntries.ts b/components/system/Files/FileManager/useDraggableEntries.ts index c56d55ff..2971c950 100644 --- a/components/system/Files/FileManager/useDraggableEntries.ts +++ b/components/system/Files/FileManager/useDraggableEntries.ts @@ -1,9 +1,9 @@ -import { getMimeType } from "components/system/Files/FileEntry/functions"; -import type { FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; -import { useSession } from "contexts/session"; import { join } from "path"; +import { type Position } from "react-rnd"; import { useCallback, useEffect, useRef, useState } from "react"; -import type { Position } from "react-rnd"; +import { getMimeType } from "components/system/Files/FileEntry/functions"; +import { type FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; +import { useSession } from "contexts/session"; import { getHtmlToImage, haltEvent, diff --git a/components/system/Files/FileManager/useEmscriptenMount.ts b/components/system/Files/FileManager/useEmscriptenMount.ts index a37a8f78..f6da009a 100644 --- a/components/system/Files/FileManager/useEmscriptenMount.ts +++ b/components/system/Files/FileManager/useEmscriptenMount.ts @@ -1,6 +1,6 @@ -import { useFileSystem } from "contexts/fileSystem"; -import type { EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; import { useCallback, useEffect, useRef } from "react"; +import { useFileSystem } from "contexts/fileSystem"; +import { type EmscriptenFS } from "contexts/fileSystem/useAsyncFs"; type EmscriptenMounter = (FS?: EmscriptenFS, fsName?: string) => Promise; diff --git a/components/system/Files/FileManager/useFileDrop.ts b/components/system/Files/FileManager/useFileDrop.ts index 8794a653..f3d11f08 100644 --- a/components/system/Files/FileManager/useFileDrop.ts +++ b/components/system/Files/FileManager/useFileDrop.ts @@ -1,19 +1,19 @@ +import { basename, extname, join, relative } from "path"; +import { useCallback } from "react"; import useTransferDialog from "components/system/Dialogs/Transfer/useTransferDialog"; import { getEventData, handleFileInputEvent, } from "components/system/Files/FileManager/functions"; -import type { DragPosition } from "components/system/Files/FileManager/useDraggableEntries"; -import type { - CompleteAction, - NewPath, +import { type DragPosition } from "components/system/Files/FileManager/useDraggableEntries"; +import { + type CompleteAction, + type NewPath, + COMPLETE_ACTION, } from "components/system/Files/FileManager/useFolder"; -import { COMPLETE_ACTION } from "components/system/Files/FileManager/useFolder"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { basename, extname, join, relative } from "path"; -import { useCallback } from "react"; import { DESKTOP_PATH, MOUNTABLE_EXTENSIONS } from "utils/constants"; import { getExtension, haltEvent, updateIconPositions } from "utils/functions"; diff --git a/components/system/Files/FileManager/useFileKeyboardShortcuts.ts b/components/system/Files/FileManager/useFileKeyboardShortcuts.ts index 1af1c3ed..1f4f57a3 100644 --- a/components/system/Files/FileManager/useFileKeyboardShortcuts.ts +++ b/components/system/Files/FileManager/useFileKeyboardShortcuts.ts @@ -1,16 +1,16 @@ +import { dirname, join } from "path"; +import { useCallback, useEffect } from "react"; import useTransferDialog from "components/system/Dialogs/Transfer/useTransferDialog"; import { createFileReaders } from "components/system/Files/FileManager/functions"; -import type { FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; -import type { - Files, - FolderActions, +import { type FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; +import { + type Files, + type FolderActions, } from "components/system/Files/FileManager/useFolder"; -import type { FileManagerViewNames } from "components/system/Files/Views"; +import { type FileManagerViewNames } from "components/system/Files/Views"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { dirname, join } from "path"; -import { useCallback, useEffect } from "react"; import { DESKTOP_PATH, PREVENT_SCROLL } from "utils/constants"; import { haltEvent, sendMouseClick } from "utils/functions"; diff --git a/components/system/Files/FileManager/useFolder.ts b/components/system/Files/FileManager/useFolder.ts index fd5fd958..9878dccd 100644 --- a/components/system/Files/FileManager/useFolder.ts +++ b/components/system/Files/FileManager/useFolder.ts @@ -1,33 +1,33 @@ -import type { ApiError } from "browserfs/dist/node/core/api_error"; +import { basename, dirname, extname, join, relative } from "path"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { type AsyncZipOptions, type AsyncZippable } from "fflate"; +import { type ApiError } from "browserfs/dist/node/core/api_error"; import type Stats from "browserfs/dist/node/core/node_fs_stats"; -import type { ObjectReader } from "components/system/Dialogs/Transfer/useTransferDialog"; -import useTransferDialog from "components/system/Dialogs/Transfer/useTransferDialog"; +import useTransferDialog, { + type ObjectReader, +} from "components/system/Dialogs/Transfer/useTransferDialog"; import { createShortcut, filterSystemFiles, getShortcutInfo, makeExternalShortcut, } from "components/system/Files/FileEntry/functions"; -import type { FileStat } from "components/system/Files/FileManager/functions"; import { + type FileStat, findPathsRecursive, removeInvalidFilenameCharacters, sortByDate, sortBySize, sortContents, } from "components/system/Files/FileManager/functions"; -import type { FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; -import type { - SetSortBy, - SortByOrder, +import { type FocusEntryFunctions } from "components/system/Files/FileManager/useFocusableEntries"; +import useSortBy, { + type SetSortBy, + type SortByOrder, } from "components/system/Files/FileManager/useSortBy"; -import useSortBy from "components/system/Files/FileManager/useSortBy"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import type { AsyncZipOptions, AsyncZippable } from "fflate"; -import { basename, dirname, extname, join, relative } from "path"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { BASE_ZIP_CONFIG, DESKTOP_PATH, diff --git a/components/system/Files/FileManager/useFolderContextMenu.ts b/components/system/Files/FileManager/useFolderContextMenu.ts index c9a20d2c..39047381 100644 --- a/components/system/Files/FileManager/useFolderContextMenu.ts +++ b/components/system/Files/FileManager/useFolderContextMenu.ts @@ -1,24 +1,24 @@ +import { basename, dirname, join } from "path"; +import { useCallback, useMemo } from "react"; import { WALLPAPER_MENU } from "components/system/Desktop/Wallpapers/constants"; import { getIconByFileExtension } from "components/system/Files/FileEntry/functions"; -import type { FolderActions } from "components/system/Files/FileManager/useFolder"; -import type { - SortBy, - SortByOrder, +import { type FolderActions } from "components/system/Files/FileManager/useFolder"; +import { + type SortBy, + type SortByOrder, } from "components/system/Files/FileManager/useSortBy"; import { useFileSystem } from "contexts/fileSystem"; import { getMountUrl, isMountedFolder } from "contexts/fileSystem/functions"; import { useMenu } from "contexts/menu"; -import type { - CaptureTriggerEvent, - ContextMenuCapture, - MenuItem, +import { + type CaptureTriggerEvent, + type ContextMenuCapture, + type MenuItem, } from "contexts/menu/useMenuContextState"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; import { useProcessesRef } from "hooks/useProcessesRef"; import { useWebGPUCheck } from "hooks/useWebGPUCheck"; -import { basename, dirname, join } from "path"; -import { useCallback, useMemo } from "react"; import { DESKTOP_PATH, FOLDER_ICON, diff --git a/components/system/Files/FileManager/useSortBy.ts b/components/system/Files/FileManager/useSortBy.ts index a56a5c01..1476d39b 100644 --- a/components/system/Files/FileManager/useSortBy.ts +++ b/components/system/Files/FileManager/useSortBy.ts @@ -1,7 +1,7 @@ -import { sortFiles } from "components/system/Files/FileManager/functions"; -import type { Files } from "components/system/Files/FileManager/useFolder"; -import { useSession } from "contexts/session"; import { useEffect, useMemo, useState } from "react"; +import { sortFiles } from "components/system/Files/FileManager/functions"; +import { type Files } from "components/system/Files/FileManager/useFolder"; +import { useSession } from "contexts/session"; export type SortBy = "date" | "name" | "size" | "type"; diff --git a/components/system/Files/Views/Icon/StyledFileEntry.ts b/components/system/Files/Views/Icon/StyledFileEntry.ts index d9d7f0c4..52e0973d 100644 --- a/components/system/Files/Views/Icon/StyledFileEntry.ts +++ b/components/system/Files/Views/Icon/StyledFileEntry.ts @@ -1,5 +1,5 @@ -import type { StyledFileEntryProps } from "components/system/Files/Views"; import styled from "styled-components"; +import { type StyledFileEntryProps } from "components/system/Files/Views"; const StyledFileEntry = styled.li` display: ${({ $visible }) => ($visible ? "flex" : "none")}; diff --git a/components/system/Files/Views/Icon/StyledFileManager.ts b/components/system/Files/Views/Icon/StyledFileManager.ts index f611c7c7..66152156 100644 --- a/components/system/Files/Views/Icon/StyledFileManager.ts +++ b/components/system/Files/Views/Icon/StyledFileManager.ts @@ -1,5 +1,5 @@ -import type { StyledFileManagerProps } from "components/system/Files/Views"; import styled from "styled-components"; +import { type StyledFileManagerProps } from "components/system/Files/Views"; import ScrollBars from "styles/common/ScrollBars"; import { TASKBAR_HEIGHT } from "utils/constants"; diff --git a/components/system/Files/Views/index.ts b/components/system/Files/Views/index.ts index b5580fdf..1d45a9d0 100644 --- a/components/system/Files/Views/index.ts +++ b/components/system/Files/Views/index.ts @@ -2,7 +2,7 @@ import StyledIconFileEntry from "components/system/Files/Views/Icon/StyledFileEn import StyledIconFileManager from "components/system/Files/Views/Icon/StyledFileManager"; import StyledListFileEntry from "components/system/Files/Views/List/StyledFileEntry"; import StyledListFileManager from "components/system/Files/Views/List/StyledFileManager"; -import type { IconProps } from "styles/common/Icon"; +import { type IconProps } from "styles/common/Icon"; export type StyledFileEntryProps = { $selecting?: boolean; diff --git a/components/system/Menu/MenuItemEntry.tsx b/components/system/Menu/MenuItemEntry.tsx index c08cea4e..ea84d5e4 100644 --- a/components/system/Menu/MenuItemEntry.tsx +++ b/components/system/Menu/MenuItemEntry.tsx @@ -1,11 +1,5 @@ -import Menu, { topLeftPosition } from "components/system/Menu"; -import { - Checkmark, - ChevronRight, - Circle, - Share, -} from "components/system/Menu/MenuIcons"; -import type { MenuItem } from "contexts/menu/useMenuContextState"; +import { useTheme } from "styled-components"; +import { type Position } from "react-rnd"; import { useCallback, useEffect, @@ -13,8 +7,14 @@ import { useRef, useState, } from "react"; -import type { Position } from "react-rnd"; -import { useTheme } from "styled-components"; +import Menu, { topLeftPosition } from "components/system/Menu"; +import { + Checkmark, + ChevronRight, + Circle, + Share, +} from "components/system/Menu/MenuIcons"; +import { type MenuItem } from "contexts/menu/useMenuContextState"; import Button from "styles/common/Button"; import Icon from "styles/common/Icon"; import { @@ -147,7 +147,7 @@ const MenuItemEntry: FC = ({ {...DIV_BUTTON_PROPS} > {icon && - (/\p{Emoji_Presentation}/gu.test(icon) ? ( + (/\p{Emoji_Presentation}/u.test(icon) ? ( {icon} ) : ( diff --git a/components/system/Menu/index.tsx b/components/system/Menu/index.tsx index 75293e4a..cd06236b 100644 --- a/components/system/Menu/index.tsx +++ b/components/system/Menu/index.tsx @@ -1,10 +1,10 @@ +import { type Position } from "react-rnd"; +import { useCallback, useEffect, useRef, useState } from "react"; import MenuItemEntry from "components/system/Menu/MenuItemEntry"; import StyledMenu from "components/system/Menu/StyledMenu"; import menuTransition from "components/system/Menu/menuTransition"; import { useMenu } from "contexts/menu/index"; -import type { MenuState } from "contexts/menu/useMenuContextState"; -import { useCallback, useEffect, useRef, useState } from "react"; -import type { Position } from "react-rnd"; +import { type MenuState } from "contexts/menu/useMenuContextState"; import { FOCUSABLE_ELEMENT, ONE_TIME_PASSIVE_EVENT, diff --git a/components/system/Menu/menuTransition.ts b/components/system/Menu/menuTransition.ts index 206bed34..11a796cb 100644 --- a/components/system/Menu/menuTransition.ts +++ b/components/system/Menu/menuTransition.ts @@ -1,4 +1,4 @@ -import type { MotionProps } from "framer-motion"; +import { type MotionProps } from "framer-motion"; import { TRANSITIONS_IN_SECONDS } from "utils/constants"; const menuTransition: MotionProps = { diff --git a/components/system/StartMenu/Sidebar/SidebarButton.tsx b/components/system/StartMenu/Sidebar/SidebarButton.tsx index 90fc85bf..1c591ad2 100644 --- a/components/system/StartMenu/Sidebar/SidebarButton.tsx +++ b/components/system/StartMenu/Sidebar/SidebarButton.tsx @@ -1,5 +1,5 @@ -import StyledSidebarButton from "components/system/StartMenu/Sidebar/StyledSidebarButton"; import { useCallback } from "react"; +import StyledSidebarButton from "components/system/StartMenu/Sidebar/StyledSidebarButton"; import { spotlightEffect } from "utils/spotlightEffect"; type SidebarButton = { diff --git a/components/system/StartMenu/Sidebar/StyledSidebarButton.ts b/components/system/StartMenu/Sidebar/StyledSidebarButton.ts index 5bfe68ac..ff46aedc 100644 --- a/components/system/StartMenu/Sidebar/StyledSidebarButton.ts +++ b/components/system/StartMenu/Sidebar/StyledSidebarButton.ts @@ -1,5 +1,5 @@ -import StyledSidebar from "components/system/StartMenu/Sidebar/StyledSidebar"; import styled from "styled-components"; +import StyledSidebar from "components/system/StartMenu/Sidebar/StyledSidebar"; type StyledSidebarButtonProps = { $active?: boolean; diff --git a/components/system/StartMenu/Sidebar/index.tsx b/components/system/StartMenu/Sidebar/index.tsx index 99d4c126..74b2d501 100644 --- a/components/system/StartMenu/Sidebar/index.tsx +++ b/components/system/StartMenu/Sidebar/index.tsx @@ -1,5 +1,8 @@ -import type { SidebarButtons } from "components/system/StartMenu/Sidebar/SidebarButton"; -import SidebarButton from "components/system/StartMenu/Sidebar/SidebarButton"; +import { useTheme } from "styled-components"; +import { memo, useEffect, useMemo, useRef, useState } from "react"; +import SidebarButton, { + type SidebarButtons, +} from "components/system/StartMenu/Sidebar/SidebarButton"; import { AllApps, Documents, @@ -12,8 +15,6 @@ import StyledSidebar from "components/system/StartMenu/Sidebar/StyledSidebar"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { memo, useEffect, useMemo, useRef, useState } from "react"; -import { useTheme } from "styled-components"; import { HOME, TASKBAR_HEIGHT } from "utils/constants"; import { haltEvent, viewHeight } from "utils/functions"; diff --git a/components/system/StartMenu/StyledStartMenu.ts b/components/system/StartMenu/StyledStartMenu.ts index be7ce739..4f2d2e5e 100644 --- a/components/system/StartMenu/StyledStartMenu.ts +++ b/components/system/StartMenu/StyledStartMenu.ts @@ -1,7 +1,7 @@ +import styled, { css } from "styled-components"; +import { m as motion } from "framer-motion"; import StyledFileManager from "components/system/Files/Views/List/StyledFileManager"; import TaskbarPanel from "components/system/Taskbar/TaskbarPanel"; -import { m as motion } from "framer-motion"; -import styled, { css } from "styled-components"; import ScrollBars from "styles/common/ScrollBars"; import { THIN_SCROLLBAR_WIDTH } from "utils/constants"; diff --git a/components/system/StartMenu/index.tsx b/components/system/StartMenu/index.tsx index d83b80d4..318854f1 100644 --- a/components/system/StartMenu/index.tsx +++ b/components/system/StartMenu/index.tsx @@ -1,3 +1,6 @@ +import { useTheme } from "styled-components"; +import { useCallback, useRef, useState } from "react"; +import { type Variant } from "framer-motion"; import FileManager from "components/system/Files/FileManager"; import Sidebar from "components/system/StartMenu/Sidebar"; import StyledStartMenu from "components/system/StartMenu/StyledStartMenu"; @@ -9,9 +12,6 @@ import { maybeCloseTaskbarMenu, } from "components/system/Taskbar/functions"; import useTaskbarItemTransition from "components/system/Taskbar/useTaskbarItemTransition"; -import type { Variant } from "framer-motion"; -import { useCallback, useRef, useState } from "react"; -import { useTheme } from "styled-components"; import { FOCUSABLE_ELEMENT, PREVENT_SCROLL, diff --git a/components/system/Taskbar/Calendar/index.tsx b/components/system/Taskbar/Calendar/index.tsx index 3c13720e..1ad474ab 100644 --- a/components/system/Taskbar/Calendar/index.tsx +++ b/components/system/Taskbar/Calendar/index.tsx @@ -1,10 +1,12 @@ +import { useTheme } from "styled-components"; +import { memo, useEffect, useMemo, useRef, useState } from "react"; import { Down, Up } from "components/system/Taskbar/Calendar/Icons"; import StyledCalendar from "components/system/Taskbar/Calendar/StyledCalendar"; -import type { Calendar as ICalendar } from "components/system/Taskbar/Calendar/functions"; -import { createCalendar } from "components/system/Taskbar/Calendar/functions"; +import { + type Calendar as ICalendar, + createCalendar, +} from "components/system/Taskbar/Calendar/functions"; import useTaskbarItemTransition from "components/system/Taskbar/useTaskbarItemTransition"; -import { memo, useEffect, useMemo, useRef, useState } from "react"; -import { useTheme } from "styled-components"; import Button from "styles/common/Button"; import { FOCUSABLE_ELEMENT, PREVENT_SCROLL } from "utils/constants"; import { haltEvent } from "utils/functions"; diff --git a/components/system/Taskbar/Clock/clock.worker.ts b/components/system/Taskbar/Clock/clock.worker.ts index 6a9ed7fb..1e13c90d 100644 --- a/components/system/Taskbar/Clock/clock.worker.ts +++ b/components/system/Taskbar/Clock/clock.worker.ts @@ -1,8 +1,10 @@ -import type { OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; -import type { LocaleTimeDate } from "components/system/Taskbar/Clock/functions"; -import { formatLocaleDateTime } from "components/system/Taskbar/Clock/functions"; +import { type OffscreenRenderProps } from "components/system/Desktop/Wallpapers/types"; +import { + type LocaleTimeDate, + formatLocaleDateTime, +} from "components/system/Taskbar/Clock/functions"; import { getNtpAdjustedTime } from "components/system/Taskbar/Clock/ntp"; -import type { ClockSource } from "contexts/session/types"; +import { type ClockSource } from "contexts/session/types"; import formats from "styles/defaultTheme/formats"; const MILLISECONDS_IN_SECOND = 1000; diff --git a/components/system/Taskbar/Clock/index.tsx b/components/system/Taskbar/Clock/index.tsx index cbd74ea9..0f064ca8 100644 --- a/components/system/Taskbar/Clock/index.tsx +++ b/components/system/Taskbar/Clock/index.tsx @@ -1,12 +1,12 @@ +import { useTheme } from "styled-components"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { measureText } from "components/system/Files/FileEntry/functions"; import StyledClock from "components/system/Taskbar/Clock/StyledClock"; -import type { LocaleTimeDate } from "components/system/Taskbar/Clock/functions"; +import { type LocaleTimeDate } from "components/system/Taskbar/Clock/functions"; import useClockContextMenu from "components/system/Taskbar/Clock/useClockContextMenu"; -import type { Size } from "components/system/Window/RndWindow/useResizable"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; import { useSession } from "contexts/session"; import useWorker from "hooks/useWorker"; -import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; -import { useTheme } from "styled-components"; import { CLOCK_CANVAS_BASE_WIDTH, FOCUSABLE_ELEMENT, diff --git a/components/system/Taskbar/Clock/useClockContextMenu.ts b/components/system/Taskbar/Clock/useClockContextMenu.ts index 95247f2f..42064c28 100644 --- a/components/system/Taskbar/Clock/useClockContextMenu.ts +++ b/components/system/Taskbar/Clock/useClockContextMenu.ts @@ -1,7 +1,7 @@ -import { useMenu } from "contexts/menu"; -import type { ContextMenuCapture } from "contexts/menu/useMenuContextState"; -import { useSession } from "contexts/session"; import { useMemo } from "react"; +import { useMenu } from "contexts/menu"; +import { type ContextMenuCapture } from "contexts/menu/useMenuContextState"; +import { useSession } from "contexts/session"; const useClockContextMenu = ( toggleCalendar: (showCalendar?: boolean) => void diff --git a/components/system/Taskbar/Search/Details.tsx b/components/system/Taskbar/Search/Details.tsx index 5784e57f..c5a0bf54 100644 --- a/components/system/Taskbar/Search/Details.tsx +++ b/components/system/Taskbar/Search/Details.tsx @@ -1,3 +1,5 @@ +import { basename, dirname, extname } from "path"; +import { useCallback, useEffect, useRef, useState } from "react"; import type Stats from "browserfs/dist/node/core/node_fs_stats"; import { getModifiedTime } from "components/system/Files/FileEntry/functions"; import { UNKNOWN_ICON } from "components/system/Files/FileManager/icons"; @@ -7,16 +9,14 @@ import { RightArrow, } from "components/system/Taskbar/Search/Icons"; import StyledDetails from "components/system/Taskbar/Search/StyledDetails"; -import type { ResultInfo } from "components/system/Taskbar/Search/functions"; import { + type ResultInfo, fileType, getResultInfo, } from "components/system/Taskbar/Search/functions"; import { useFileSystem } from "contexts/fileSystem"; -import type { ProcessArguments } from "contexts/process/types"; +import { type ProcessArguments } from "contexts/process/types"; import { useSession } from "contexts/session"; -import { basename, dirname, extname } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; import Button from "styles/common/Button"; import Icon from "styles/common/Icon"; import { DEFAULT_LOCALE, ROOT_NAME } from "utils/constants"; diff --git a/components/system/Taskbar/Search/ResultEntry.tsx b/components/system/Taskbar/Search/ResultEntry.tsx index ad9bfe1b..7a146e39 100644 --- a/components/system/Taskbar/Search/ResultEntry.tsx +++ b/components/system/Taskbar/Search/ResultEntry.tsx @@ -1,18 +1,18 @@ +import { basename, extname } from "path"; +import { useEffect, useMemo, useRef, useState } from "react"; import type Stats from "browserfs/dist/node/core/node_fs_stats"; import { useIsVisible } from "components/apps/Messenger/hooks"; import { getModifiedTime } from "components/system/Files/FileEntry/functions"; import { UNKNOWN_ICON } from "components/system/Files/FileManager/icons"; -import type { ResultInfo } from "components/system/Taskbar/Search/functions"; import { + type ResultInfo, fileType, getResultInfo, } from "components/system/Taskbar/Search/functions"; import { RightArrow } from "components/system/Taskbar/Search/Icons"; import { useFileSystem } from "contexts/fileSystem"; -import type { ProcessArguments } from "contexts/process/types"; +import { type ProcessArguments } from "contexts/process/types"; import { useSession } from "contexts/session"; -import { basename, extname } from "path"; -import { useEffect, useMemo, useRef, useState } from "react"; import Icon from "styles/common/Icon"; import { DEFAULT_LOCALE } from "utils/constants"; import { isYouTubeUrl } from "utils/functions"; diff --git a/components/system/Taskbar/Search/ResultSection.tsx b/components/system/Taskbar/Search/ResultSection.tsx index b8187947..54534672 100644 --- a/components/system/Taskbar/Search/ResultSection.tsx +++ b/components/system/Taskbar/Search/ResultSection.tsx @@ -1,9 +1,9 @@ +import { useMemo } from "react"; import { Search as SearchIcon } from "components/apps/FileExplorer/NavigationIcons"; import { NO_RESULTS, type TabName } from "components/system/Taskbar/Search"; import ResultEntry from "components/system/Taskbar/Search/ResultEntry"; import StyledResultsHeader from "components/system/Taskbar/Search/StyledResultsHeader"; -import type { ProcessArguments } from "contexts/process/types"; -import { useMemo } from "react"; +import { type ProcessArguments } from "contexts/process/types"; type ResultsSectionProps = { activeItem: string; diff --git a/components/system/Taskbar/Search/SearchButton.tsx b/components/system/Taskbar/Search/SearchButton.tsx index 49ca81e8..df0855f2 100644 --- a/components/system/Taskbar/Search/SearchButton.tsx +++ b/components/system/Taskbar/Search/SearchButton.tsx @@ -1,7 +1,6 @@ +import { useTheme } from "styled-components"; import { Search as SearchIcon } from "components/system/Taskbar/Search/Icons"; import StyledTaskbarButton from "components/system/Taskbar/StyledTaskbarButton"; -import { useTheme } from "styled-components"; - import { SEARCH_BUTTON_TITLE } from "components/system/Taskbar/functions"; import useTaskbarContextMenu from "components/system/Taskbar/useTaskbarContextMenu"; import { DIV_BUTTON_PROPS } from "utils/constants"; diff --git a/components/system/Taskbar/Search/StyledSearch.ts b/components/system/Taskbar/Search/StyledSearch.ts index 4775e48e..4dfd9ddf 100644 --- a/components/system/Taskbar/Search/StyledSearch.ts +++ b/components/system/Taskbar/Search/StyledSearch.ts @@ -1,7 +1,7 @@ -import { SINGLE_LINE_HEIGHT_ADDITION } from "components/system/Taskbar/Search"; -import TaskbarPanel from "components/system/Taskbar/TaskbarPanel"; import { m as motion } from "framer-motion"; import styled from "styled-components"; +import { SINGLE_LINE_HEIGHT_ADDITION } from "components/system/Taskbar/Search"; +import TaskbarPanel from "components/system/Taskbar/TaskbarPanel"; type StyledSearchProps = { $singleLine: boolean; diff --git a/components/system/Taskbar/Search/functions.ts b/components/system/Taskbar/Search/functions.ts index 0faf6ff5..45a1e7c7 100644 --- a/components/system/Taskbar/Search/functions.ts +++ b/components/system/Taskbar/Search/functions.ts @@ -1,10 +1,10 @@ -import type { FSModule } from "browserfs/dist/node/core/FS"; +import { join } from "path"; +import { type FSModule } from "browserfs/dist/node/core/FS"; import type Stats from "browserfs/dist/node/core/node_fs_stats"; import extensions from "components/system/Files/FileEntry/extensions"; import { getInfoWithExtension } from "components/system/Files/FileEntry/functions"; -import type { FileInfo } from "components/system/Files/FileEntry/useFileInfo"; -import type { useFileSystem } from "contexts/fileSystem"; -import { join } from "path"; +import { type FileInfo } from "components/system/Files/FileEntry/useFileInfo"; +import { type useFileSystem } from "contexts/fileSystem"; import { ICON_CACHE, ICON_CACHE_EXTENSION, diff --git a/components/system/Taskbar/Search/index.tsx b/components/system/Taskbar/Search/index.tsx index 6cf080b3..c0b65d87 100644 --- a/components/system/Taskbar/Search/index.tsx +++ b/components/system/Taskbar/Search/index.tsx @@ -1,3 +1,7 @@ +import { basename, extname } from "path"; +import { useTheme } from "styled-components"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { type Variant, m as motion } from "framer-motion"; import { Search as SearchIcon } from "components/apps/FileExplorer/NavigationIcons"; import { getProcessByFileExtension, @@ -28,13 +32,8 @@ import { CloseIcon } from "components/system/Window/Titlebar/WindowActionIcons"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import directory from "contexts/process/directory"; -import type { ProcessArguments } from "contexts/process/types"; +import { type ProcessArguments } from "contexts/process/types"; import { useSession } from "contexts/session"; -import type { Variant } from "framer-motion"; -import { m as motion } from "framer-motion"; -import { basename, extname } from "path"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; -import { useTheme } from "styled-components"; import Button from "styles/common/Button"; import Icon from "styles/common/Icon"; import { diff --git a/components/system/Taskbar/Search/useSearchInputTransition.ts b/components/system/Taskbar/Search/useSearchInputTransition.ts index 7710e209..27d66d9b 100644 --- a/components/system/Taskbar/Search/useSearchInputTransition.ts +++ b/components/system/Taskbar/Search/useSearchInputTransition.ts @@ -1,4 +1,4 @@ -import type { MotionProps } from "framer-motion"; +import { type MotionProps } from "framer-motion"; import { TRANSITIONS_IN_SECONDS } from "utils/constants"; const useSearchInputTransition = (): MotionProps => { diff --git a/components/system/Taskbar/StartButton/index.tsx b/components/system/Taskbar/StartButton/index.tsx index 49e82c64..0885bee2 100644 --- a/components/system/Taskbar/StartButton/index.tsx +++ b/components/system/Taskbar/StartButton/index.tsx @@ -1,8 +1,8 @@ +import { useCallback, useRef, useState } from "react"; import StartButtonIcon from "components/system/Taskbar/StartButton/StartButtonIcon"; import StyledTaskbarButton from "components/system/Taskbar/StyledTaskbarButton"; import { START_BUTTON_TITLE } from "components/system/Taskbar/functions"; import useTaskbarContextMenu from "components/system/Taskbar/useTaskbarContextMenu"; -import { useCallback, useRef, useState } from "react"; import { DIV_BUTTON_PROPS, ICON_PATH, USER_ICON_PATH } from "utils/constants"; import { getDpi, imageSrc, imageSrcs, isSafari, label } from "utils/functions"; diff --git a/components/system/Taskbar/TaskbarEntries/index.tsx b/components/system/Taskbar/TaskbarEntries/index.tsx index 0bf69a49..eb709da4 100644 --- a/components/system/Taskbar/TaskbarEntries/index.tsx +++ b/components/system/Taskbar/TaskbarEntries/index.tsx @@ -1,8 +1,8 @@ -import StyledTaskbarEntries from "components/system/Taskbar/TaskbarEntries/StyledTaskbarEntries"; -import { useProcesses } from "contexts/process"; import { AnimatePresence } from "framer-motion"; import dynamic from "next/dynamic"; import { memo } from "react"; +import StyledTaskbarEntries from "components/system/Taskbar/TaskbarEntries/StyledTaskbarEntries"; +import { useProcesses } from "contexts/process"; const TaskbarEntry = dynamic( () => import("components/system/Taskbar/TaskbarEntry") diff --git a/components/system/Taskbar/TaskbarEntry/Peek/PeekWindow.tsx b/components/system/Taskbar/TaskbarEntry/Peek/PeekWindow.tsx index f66aee3f..81a5935c 100644 --- a/components/system/Taskbar/TaskbarEntry/Peek/PeekWindow.tsx +++ b/components/system/Taskbar/TaskbarEntry/Peek/PeekWindow.tsx @@ -1,3 +1,4 @@ +import { memo, useLayoutEffect, useRef, useState } from "react"; import StyledPeekWindow from "components/system/Taskbar/TaskbarEntry/Peek/StyledPeekWindow"; import usePeekTransition from "components/system/Taskbar/TaskbarEntry/Peek/usePeekTransition"; import useWindowPeek from "components/system/Taskbar/TaskbarEntry/Peek/useWindowPeek"; @@ -5,7 +6,6 @@ import { CloseIcon } from "components/system/Window/Titlebar/WindowActionIcons"; import useWindowActions from "components/system/Window/Titlebar/useWindowActions"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { memo, useLayoutEffect, useRef, useState } from "react"; import Button from "styles/common/Button"; import { FOCUSABLE_ELEMENT, HIGH_PRIORITY_ELEMENT } from "utils/constants"; import { label, viewWidth } from "utils/functions"; diff --git a/components/system/Taskbar/TaskbarEntry/Peek/StyledPeekWindow.ts b/components/system/Taskbar/TaskbarEntry/Peek/StyledPeekWindow.ts index 69546938..09d4935e 100644 --- a/components/system/Taskbar/TaskbarEntry/Peek/StyledPeekWindow.ts +++ b/components/system/Taskbar/TaskbarEntry/Peek/StyledPeekWindow.ts @@ -1,6 +1,6 @@ -import StyledTaskbarEntry from "components/system/Taskbar/TaskbarEntry/StyledTaskbarEntry"; import { m as motion } from "framer-motion"; import styled from "styled-components"; +import StyledTaskbarEntry from "components/system/Taskbar/TaskbarEntry/StyledTaskbarEntry"; import { PEEK_MAX_WIDTH, TASKBAR_HEIGHT } from "utils/constants"; type StyledPeekWindowProps = { diff --git a/components/system/Taskbar/TaskbarEntry/Peek/usePeekTransition.ts b/components/system/Taskbar/TaskbarEntry/Peek/usePeekTransition.ts index b718600e..116abe56 100644 --- a/components/system/Taskbar/TaskbarEntry/Peek/usePeekTransition.ts +++ b/components/system/Taskbar/TaskbarEntry/Peek/usePeekTransition.ts @@ -1,4 +1,4 @@ -import type { MotionProps } from "framer-motion"; +import { type MotionProps } from "framer-motion"; import { useTheme } from "styled-components"; import { TRANSITIONS_IN_SECONDS } from "utils/constants"; diff --git a/components/system/Taskbar/TaskbarEntry/Peek/useWindowPeek.ts b/components/system/Taskbar/TaskbarEntry/Peek/useWindowPeek.ts index 515f0f9b..a84facc1 100644 --- a/components/system/Taskbar/TaskbarEntry/Peek/useWindowPeek.ts +++ b/components/system/Taskbar/TaskbarEntry/Peek/useWindowPeek.ts @@ -1,5 +1,5 @@ -import { useProcesses } from "contexts/process"; import { useEffect, useRef, useState } from "react"; +import { useProcesses } from "contexts/process"; import { MILLISECONDS_IN_SECOND, ONE_TIME_PASSIVE_EVENT, diff --git a/components/system/Taskbar/TaskbarEntry/index.tsx b/components/system/Taskbar/TaskbarEntry/index.tsx index 517f4015..34ec23db 100644 --- a/components/system/Taskbar/TaskbarEntry/index.tsx +++ b/components/system/Taskbar/TaskbarEntry/index.tsx @@ -1,12 +1,12 @@ +import { memo, useCallback, useMemo, useState } from "react"; +import dynamic from "next/dynamic"; +import { AnimatePresence } from "framer-motion"; import StyledTaskbarEntry from "components/system/Taskbar/TaskbarEntry/StyledTaskbarEntry"; import useTaskbarTransition from "components/system/Taskbar/TaskbarEntry/useTaskbarTransition"; import useTitlebarContextMenu from "components/system/Window/Titlebar/useTitlebarContextMenu"; import useNextFocusable from "components/system/Window/useNextFocusable"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { AnimatePresence } from "framer-motion"; -import dynamic from "next/dynamic"; -import { memo, useCallback, useMemo, useState } from "react"; import Button from "styles/common/Button"; import Icon from "styles/common/Icon"; import { DIV_BUTTON_PROPS } from "utils/constants"; diff --git a/components/system/Taskbar/TaskbarEntry/useTaskbarTransition.ts b/components/system/Taskbar/TaskbarEntry/useTaskbarTransition.ts index 8d30a8e0..279622e0 100644 --- a/components/system/Taskbar/TaskbarEntry/useTaskbarTransition.ts +++ b/components/system/Taskbar/TaskbarEntry/useTaskbarTransition.ts @@ -1,4 +1,4 @@ -import type { MotionProps } from "framer-motion"; +import { type MotionProps } from "framer-motion"; import { useTheme } from "styled-components"; import { TRANSITIONS_IN_SECONDS } from "utils/constants"; diff --git a/components/system/Taskbar/TaskbarPanel.ts b/components/system/Taskbar/TaskbarPanel.ts index 852619f2..44e52b5a 100644 --- a/components/system/Taskbar/TaskbarPanel.ts +++ b/components/system/Taskbar/TaskbarPanel.ts @@ -1,5 +1,4 @@ -import type { RuleSet } from "styled-components"; -import { css } from "styled-components"; +import { type RuleSet, css } from "styled-components"; import { TASKBAR_HEIGHT } from "utils/constants"; const TaskbarPanel = ( diff --git a/components/system/Taskbar/index.tsx b/components/system/Taskbar/index.tsx index 3ff7f3d8..7f005c56 100644 --- a/components/system/Taskbar/index.tsx +++ b/components/system/Taskbar/index.tsx @@ -1,12 +1,12 @@ +import { memo, useCallback, useState } from "react"; +import dynamic from "next/dynamic"; +import { AnimatePresence } from "framer-motion"; import Clock from "components/system/Taskbar/Clock"; import SearchButton from "components/system/Taskbar/Search/SearchButton"; import StartButton from "components/system/Taskbar/StartButton"; import StyledTaskbar from "components/system/Taskbar/StyledTaskbar"; import TaskbarEntries from "components/system/Taskbar/TaskbarEntries"; import useTaskbarContextMenu from "components/system/Taskbar/useTaskbarContextMenu"; -import { AnimatePresence } from "framer-motion"; -import dynamic from "next/dynamic"; -import { memo, useCallback, useState } from "react"; import { CLOCK_CANVAS_BASE_WIDTH, FOCUSABLE_ELEMENT } from "utils/constants"; const Calendar = dynamic(() => import("components/system/Taskbar/Calendar")); diff --git a/components/system/Taskbar/useTaskbarContextMenu.ts b/components/system/Taskbar/useTaskbarContextMenu.ts index e83c13af..bb8551da 100644 --- a/components/system/Taskbar/useTaskbarContextMenu.ts +++ b/components/system/Taskbar/useTaskbarContextMenu.ts @@ -1,13 +1,13 @@ +import { useMemo } from "react"; import { useMenu } from "contexts/menu"; -import type { - ContextMenuCapture, - MenuItem, +import { + type ContextMenuCapture, + type MenuItem, } from "contexts/menu/useMenuContextState"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; import { useViewport } from "contexts/viewport"; import { useProcessesRef } from "hooks/useProcessesRef"; -import { useMemo } from "react"; import { MENU_SEPERATOR } from "utils/constants"; import { toggleShowDesktop } from "utils/functions"; diff --git a/components/system/Taskbar/useTaskbarItemTransition.ts b/components/system/Taskbar/useTaskbarItemTransition.ts index 61cc1755..762a4f99 100644 --- a/components/system/Taskbar/useTaskbarItemTransition.ts +++ b/components/system/Taskbar/useTaskbarItemTransition.ts @@ -1,4 +1,4 @@ -import type { MotionProps } from "framer-motion"; +import { type MotionProps } from "framer-motion"; import { TASKBAR_HEIGHT, TRANSITIONS_IN_SECONDS } from "utils/constants"; import { viewHeight } from "utils/functions"; diff --git a/components/system/Window/RndWindow/index.tsx b/components/system/Window/RndWindow/index.tsx index 8631051b..301676ac 100644 --- a/components/system/Window/RndWindow/index.tsx +++ b/components/system/Window/RndWindow/index.tsx @@ -1,7 +1,7 @@ +import { Rnd } from "react-rnd"; +import { useCallback, useEffect, useMemo, useRef } from "react"; import useRnd from "components/system/Window/RndWindow/useRnd"; import { useProcesses } from "contexts/process"; -import { useCallback, useEffect, useMemo, useRef } from "react"; -import { Rnd } from "react-rnd"; import { FOCUSABLE_ELEMENT, PREVENT_SCROLL } from "utils/constants"; import { haltEvent } from "utils/functions"; diff --git a/components/system/Window/RndWindow/rndDefaults.ts b/components/system/Window/RndWindow/rndDefaults.ts index 4b0441b0..a135d1c6 100644 --- a/components/system/Window/RndWindow/rndDefaults.ts +++ b/components/system/Window/RndWindow/rndDefaults.ts @@ -1,4 +1,4 @@ -import type { HandleStyles } from "react-rnd"; +import { type HandleStyles } from "react-rnd"; export const RESIZING_DISABLED = { bottom: false, diff --git a/components/system/Window/RndWindow/useDefaultSize.ts b/components/system/Window/RndWindow/useDefaultSize.ts index adcc97a9..365accea 100644 --- a/components/system/Window/RndWindow/useDefaultSize.ts +++ b/components/system/Window/RndWindow/useDefaultSize.ts @@ -1,7 +1,7 @@ -import type { Size } from "components/system/Window/RndWindow/useResizable"; -import { useProcesses } from "contexts/process"; -import { useMemo } from "react"; import { useTheme } from "styled-components"; +import { useMemo } from "react"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; +import { useProcesses } from "contexts/process"; import { DEFAULT_WINDOW_SIZE } from "utils/constants"; const useDefaultSize = (id: string): Size => { diff --git a/components/system/Window/RndWindow/useDraggable.ts b/components/system/Window/RndWindow/useDraggable.ts index 318e81a1..3ee7ed1d 100644 --- a/components/system/Window/RndWindow/useDraggable.ts +++ b/components/system/Window/RndWindow/useDraggable.ts @@ -1,5 +1,8 @@ +import { useTheme } from "styled-components"; +import { type Position } from "react-rnd"; +import { useEffect, useLayoutEffect, useMemo, useState } from "react"; import useMinMaxRef from "components/system/Window/RndWindow/useMinMaxRef"; -import type { Size } from "components/system/Window/RndWindow/useResizable"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; import { WINDOW_OFFSCREEN_BUFFER_PX, cascadePosition, @@ -8,9 +11,6 @@ import { } from "components/system/Window/functions"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { useEffect, useLayoutEffect, useMemo, useState } from "react"; -import type { Position } from "react-rnd"; -import { useTheme } from "styled-components"; import { calcInitialPosition, getWindowViewport } from "utils/functions"; type Draggable = [Position, React.Dispatch>]; diff --git a/components/system/Window/RndWindow/useMinMaxRef.ts b/components/system/Window/RndWindow/useMinMaxRef.ts index 33340f2f..8be36aac 100644 --- a/components/system/Window/RndWindow/useMinMaxRef.ts +++ b/components/system/Window/RndWindow/useMinMaxRef.ts @@ -1,5 +1,5 @@ -import { useProcesses } from "contexts/process"; import { useEffect, useRef } from "react"; +import { useProcesses } from "contexts/process"; const useMinMaxRef = (id: string): React.MutableRefObject => { const { processes } = useProcesses(); diff --git a/components/system/Window/RndWindow/useResizable.ts b/components/system/Window/RndWindow/useResizable.ts index e4c3ded4..79db0bad 100644 --- a/components/system/Window/RndWindow/useResizable.ts +++ b/components/system/Window/RndWindow/useResizable.ts @@ -1,10 +1,10 @@ +import { type Props } from "react-rnd"; +import { useLayoutEffect, useState } from "react"; import useDefaultSize from "components/system/Window/RndWindow/useDefaultSize"; import useMinMaxRef from "components/system/Window/RndWindow/useMinMaxRef"; import { minMaxSize } from "components/system/Window/functions"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { useLayoutEffect, useState } from "react"; -import type { Props } from "react-rnd"; export type Size = NonNullable; diff --git a/components/system/Window/RndWindow/useRnd.ts b/components/system/Window/RndWindow/useRnd.ts index 02191f85..51d694e1 100644 --- a/components/system/Window/RndWindow/useRnd.ts +++ b/components/system/Window/RndWindow/useRnd.ts @@ -1,3 +1,6 @@ +import { type Props, type RndResizeCallback } from "react-rnd"; +import { type DraggableEventHandler } from "react-draggable"; +import { useCallback, useMemo } from "react"; import rndDefaults, { RESIZING_DISABLED, RESIZING_ENABLED, @@ -7,9 +10,6 @@ import useResizable from "components/system/Window/RndWindow/useResizable"; import { isWindowOutsideBounds } from "components/system/Window/functions"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { useCallback, useMemo } from "react"; -import type { DraggableEventHandler } from "react-draggable"; -import type { Props, RndResizeCallback } from "react-rnd"; import { getWindowViewport, pxToNum } from "utils/functions"; const enableIframeCapture = (enable = true): void => diff --git a/components/system/Window/Titlebar/StyledTitlebar.ts b/components/system/Window/Titlebar/StyledTitlebar.ts index d5670c76..0fb84880 100644 --- a/components/system/Window/Titlebar/StyledTitlebar.ts +++ b/components/system/Window/Titlebar/StyledTitlebar.ts @@ -1,5 +1,4 @@ -import type { DefaultTheme } from "styled-components"; -import styled from "styled-components"; +import styled, { type DefaultTheme } from "styled-components"; type StyledTitlebarProps = { $foreground: boolean; diff --git a/components/system/Window/Titlebar/index.tsx b/components/system/Window/Titlebar/index.tsx index 91181c9d..9287a12f 100644 --- a/components/system/Window/Titlebar/index.tsx +++ b/components/system/Window/Titlebar/index.tsx @@ -1,3 +1,4 @@ +import { memo, useCallback, useRef } from "react"; import rndDefaults from "components/system/Window/RndWindow/rndDefaults"; import StyledTitlebar from "components/system/Window/Titlebar/StyledTitlebar"; import { @@ -9,11 +10,10 @@ import { import useTitlebarContextMenu from "components/system/Window/Titlebar/useTitlebarContextMenu"; import useWindowActions from "components/system/Window/Titlebar/useWindowActions"; import { useMenu } from "contexts/menu"; -import type { MenuState } from "contexts/menu/useMenuContextState"; +import { type MenuState } from "contexts/menu/useMenuContextState"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; import useDoubleClick from "hooks/useDoubleClick"; -import { memo, useCallback, useRef } from "react"; import Button from "styles/common/Button"; import Icon from "styles/common/Icon"; import { LONG_PRESS_DELAY_MS, PREVENT_SCROLL } from "utils/constants"; diff --git a/components/system/Window/Titlebar/useTitlebarContextMenu.ts b/components/system/Window/Titlebar/useTitlebarContextMenu.ts index 6f3425f1..eb155640 100644 --- a/components/system/Window/Titlebar/useTitlebarContextMenu.ts +++ b/components/system/Window/Titlebar/useTitlebarContextMenu.ts @@ -1,3 +1,4 @@ +import { useMemo } from "react"; import { CLOSE, MAXIMIZE, @@ -9,12 +10,11 @@ import { } from "components/system/Window/Titlebar/Buttons"; import useWindowActions from "components/system/Window/Titlebar/useWindowActions"; import { useMenu } from "contexts/menu"; -import type { - ContextMenuCapture, - MenuItem, +import { + type ContextMenuCapture, + type MenuItem, } from "contexts/menu/useMenuContextState"; import { useProcesses } from "contexts/process"; -import { useMemo } from "react"; import { MENU_SEPERATOR } from "utils/constants"; const useTitlebarContextMenu = (id: string): ContextMenuCapture => { diff --git a/components/system/Window/Titlebar/useWindowActions.ts b/components/system/Window/Titlebar/useWindowActions.ts index 6dcc3a87..937a8a05 100644 --- a/components/system/Window/Titlebar/useWindowActions.ts +++ b/components/system/Window/Titlebar/useWindowActions.ts @@ -1,7 +1,7 @@ +import { useCallback } from "react"; import useNextFocusable from "components/system/Window/useNextFocusable"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { useCallback } from "react"; type WindowActions = { onClose: () => void; diff --git a/components/system/Window/functions.ts b/components/system/Window/functions.ts index 4dcc2acf..507731df 100644 --- a/components/system/Window/functions.ts +++ b/components/system/Window/functions.ts @@ -1,11 +1,11 @@ +import { type Position } from "react-rnd"; import { MIN_WINDOW_HEIGHT, MIN_WINDOW_WIDTH, } from "components/system/Window/RndWindow/rndDefaults"; -import type { Size } from "components/system/Window/RndWindow/useResizable"; -import type { Processes } from "contexts/process/types"; -import type { WindowState } from "contexts/session/types"; -import type { Position } from "react-rnd"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; +import { type Processes } from "contexts/process/types"; +import { type WindowState } from "contexts/session/types"; import { PROCESS_DELIMITER, TASKBAR_HEIGHT } from "utils/constants"; import { pxToNum, viewHeight, viewWidth } from "utils/functions"; diff --git a/components/system/Window/index.tsx b/components/system/Window/index.tsx index ea4f6692..9b2661fa 100644 --- a/components/system/Window/index.tsx +++ b/components/system/Window/index.tsx @@ -1,4 +1,5 @@ -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { useCallback } from "react"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledPeekViewport from "components/system/Taskbar/TaskbarEntry/Peek/StyledPeekViewport"; import RndWindow from "components/system/Window/RndWindow"; import StyledWindow from "components/system/Window/StyledWindow"; @@ -7,7 +8,6 @@ import useFocusable from "components/system/Window/useFocusable"; import useWindowTransitions from "components/system/Window/useWindowTransitions"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { useCallback } from "react"; const Window: FC = ({ children, id }) => { const { diff --git a/components/system/Window/useFocusable.ts b/components/system/Window/useFocusable.ts index 74ca1c80..51d9ae81 100644 --- a/components/system/Window/useFocusable.ts +++ b/components/system/Window/useFocusable.ts @@ -1,6 +1,6 @@ +import { useCallback, useLayoutEffect, useMemo } from "react"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { useCallback, useLayoutEffect, useMemo } from "react"; import { FOCUSABLE_ELEMENT, PREVENT_SCROLL } from "utils/constants"; type Events = { diff --git a/components/system/Window/useTitle.ts b/components/system/Window/useTitle.ts index 3147855a..438db122 100644 --- a/components/system/Window/useTitle.ts +++ b/components/system/Window/useTitle.ts @@ -1,6 +1,6 @@ +import { useCallback } from "react"; import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; -import { useCallback } from "react"; import { PROCESS_DELIMITER, SAVE_TITLE_CHAR } from "utils/constants"; type Title = { diff --git a/components/system/Window/useWindowSize.ts b/components/system/Window/useWindowSize.ts index fb246d1d..e17a0cca 100644 --- a/components/system/Window/useWindowSize.ts +++ b/components/system/Window/useWindowSize.ts @@ -1,8 +1,8 @@ +import { useTheme } from "styled-components"; +import { useCallback } from "react"; import { minMaxSize } from "components/system/Window/functions"; import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; -import { useCallback } from "react"; -import { useTheme } from "styled-components"; type WindowSize = { updateWindowSize: (height: number, width: number) => void; diff --git a/components/system/Window/useWindowTransitions.ts b/components/system/Window/useWindowTransitions.ts index 7670397e..4d48b0c0 100644 --- a/components/system/Window/useWindowTransitions.ts +++ b/components/system/Window/useWindowTransitions.ts @@ -1,6 +1,6 @@ -import { useProcesses } from "contexts/process"; -import type { MotionProps, Variant } from "framer-motion"; import { useEffect, useLayoutEffect, useState } from "react"; +import { type MotionProps, type Variant } from "framer-motion"; +import { useProcesses } from "contexts/process"; import { TASKBAR_HEIGHT, TRANSITIONS_IN_SECONDS } from "utils/constants"; import { viewHeight, viewWidth } from "utils/functions"; diff --git a/contexts/fileSystem/FileSystemConfig.ts b/contexts/fileSystem/FileSystemConfig.ts index 0f35c04b..a3f3652c 100644 --- a/contexts/fileSystem/FileSystemConfig.ts +++ b/contexts/fileSystem/FileSystemConfig.ts @@ -1,4 +1,4 @@ -import type { FileSystemConfiguration } from "browserfs"; +import { type FileSystemConfiguration } from "browserfs"; import { fs9pToBfs } from "contexts/fileSystem/core"; const index = fs9pToBfs(); diff --git a/contexts/fileSystem/core.ts b/contexts/fileSystem/core.ts index fcf8c851..a3843a09 100644 --- a/contexts/fileSystem/core.ts +++ b/contexts/fileSystem/core.ts @@ -1,5 +1,5 @@ -import { openDB } from "idb"; import { join } from "path"; +import { openDB } from "idb"; import index from "public/.index/fs.9p.json"; import { FS_HANDLES, ONE_TIME_PASSIVE_EVENT } from "utils/constants"; diff --git a/contexts/fileSystem/functions.ts b/contexts/fileSystem/functions.ts index bbe755a9..dfae0ee1 100644 --- a/contexts/fileSystem/functions.ts +++ b/contexts/fileSystem/functions.ts @@ -1,19 +1,19 @@ +import { extname, join } from "path"; import type HTTPRequest from "browserfs/dist/node/backend/HTTPRequest"; import type IndexedDBFileSystem from "browserfs/dist/node/backend/IndexedDB"; import type OverlayFS from "browserfs/dist/node/backend/OverlayFS"; +import { FS_HANDLES, MOUNTABLE_EXTENSIONS } from "utils/constants"; +import { + type ExtendedEmscriptenFileSystem, + type Mount, + type RootFileSystem, +} from "contexts/fileSystem/useAsyncFs"; import { KEYVAL_STORE_NAME, getFileSystemHandles, getKeyValStore, supportsIndexedDB, } from "contexts/fileSystem/core"; -import type { - ExtendedEmscriptenFileSystem, - Mount, - RootFileSystem, -} from "contexts/fileSystem/useAsyncFs"; -import { extname, join } from "path"; -import { FS_HANDLES, MOUNTABLE_EXTENSIONS } from "utils/constants"; const KNOWN_IDB_DBS = [ "/classicube", diff --git a/contexts/fileSystem/useAsyncFs.ts b/contexts/fileSystem/useAsyncFs.ts index d5780fbb..985786ab 100644 --- a/contexts/fileSystem/useAsyncFs.ts +++ b/contexts/fileSystem/useAsyncFs.ts @@ -1,21 +1,21 @@ +import { join } from "path"; +import { type FSModule } from "browserfs/dist/node/core/FS"; +import Stats, { FileType } from "browserfs/dist/node/core/node_fs_stats"; +import { useEffect, useMemo, useRef, useState } from "react"; import type * as IBrowserFS from "browserfs"; import type EmscriptenFileSystem from "browserfs/dist/node/backend/Emscripten"; import type MountableFileSystem from "browserfs/dist/node/backend/MountableFileSystem"; -import type { FSModule } from "browserfs/dist/node/core/FS"; -import Stats, { FileType } from "browserfs/dist/node/core/node_fs_stats"; -import FileSystemConfig from "contexts/fileSystem/FileSystemConfig"; -import { - UNKNOWN_STATE_CODES, - supportsIndexedDB, -} from "contexts/fileSystem/core"; -import { join } from "path"; -import * as BrowserFS from "public/System/BrowserFS/browserfs.min.js"; -import { useEffect, useMemo, useRef, useState } from "react"; import { ICON_CACHE, ICON_CACHE_EXTENSION, SESSION_FILE, } from "utils/constants"; +import * as BrowserFS from "public/System/BrowserFS/browserfs.min.js"; +import { + UNKNOWN_STATE_CODES, + supportsIndexedDB, +} from "contexts/fileSystem/core"; +import FileSystemConfig from "contexts/fileSystem/FileSystemConfig"; export type AsyncFS = { exists: (path: string) => Promise; diff --git a/contexts/fileSystem/useFileSystemContextState.ts b/contexts/fileSystem/useFileSystemContextState.ts index 2ac3c565..3a80ccf9 100644 --- a/contexts/fileSystem/useFileSystemContextState.ts +++ b/contexts/fileSystem/useFileSystemContextState.ts @@ -1,35 +1,34 @@ -import type * as IBrowserFS from "browserfs"; -import type IIsoFS from "browserfs/dist/node/backend/IsoFS"; -import type IZipFS from "browserfs/dist/node/backend/ZipFS"; -import type { FSModule } from "browserfs/dist/node/core/FS"; -import type { ApiError } from "browserfs/dist/node/core/api_error"; -import type { - BFSCallback, - FileSystem, +import { basename, dirname, isAbsolute, join } from "path"; +import { useCallback, useEffect, useRef, useState } from "react"; +import { + type BFSCallback, + type FileSystem, } from "browserfs/dist/node/core/file_system"; +import { type ApiError } from "browserfs/dist/node/core/api_error"; +import { type FSModule } from "browserfs/dist/node/core/FS"; +import type IZipFS from "browserfs/dist/node/backend/ZipFS"; +import type IIsoFS from "browserfs/dist/node/backend/IsoFS"; +import type * as IBrowserFS from "browserfs"; import useTransferDialog from "components/system/Dialogs/Transfer/useTransferDialog"; import { getMimeType } from "components/system/Files/FileEntry/functions"; -import type { InputChangeEvent } from "components/system/Files/FileManager/functions"; import { + type InputChangeEvent, getEventData, handleFileInputEvent, iterateFileName, removeInvalidFilenameCharacters, } from "components/system/Files/FileManager/functions"; -import type { NewPath } from "components/system/Files/FileManager/useFolder"; +import { type NewPath } from "components/system/Files/FileManager/useFolder"; import { getFileSystemHandles } from "contexts/fileSystem/core"; import { isMountedFolder } from "contexts/fileSystem/functions"; -import type { - AsyncFS, - EmscriptenFS, - ExtendedEmscriptenFileSystem, - RootFileSystem, +import useAsyncFs, { + type AsyncFS, + type EmscriptenFS, + type ExtendedEmscriptenFileSystem, + type RootFileSystem, } from "contexts/fileSystem/useAsyncFs"; -import useAsyncFs from "contexts/fileSystem/useAsyncFs"; import { useProcesses } from "contexts/process"; -import type { UpdateFiles } from "contexts/session/types"; -import { basename, dirname, isAbsolute, join } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { type UpdateFiles } from "contexts/session/types"; import { CLIPBOARD_FILE_EXTENSIONS, DEFAULT_MAPPED_NAME, diff --git a/contexts/process/directory.ts b/contexts/process/directory.ts index f2dcc7a9..5a387b5b 100644 --- a/contexts/process/directory.ts +++ b/contexts/process/directory.ts @@ -1,5 +1,5 @@ -import type { Processes } from "contexts/process/types"; import dynamic from "next/dynamic"; +import { type Processes } from "contexts/process/types"; import { FOLDER_ICON, TASKBAR_HEIGHT } from "utils/constants"; const directory: Processes = { diff --git a/contexts/process/functions.ts b/contexts/process/functions.ts index 1ef096ac..6842d145 100644 --- a/contexts/process/functions.ts +++ b/contexts/process/functions.ts @@ -1,9 +1,9 @@ import processDirectory from "contexts/process/directory"; -import type { - Process, - ProcessArguments, - ProcessElements, - Processes, +import { + type Process, + type ProcessArguments, + type ProcessElements, + type Processes, } from "contexts/process/types"; import { PREVENT_SCROLL, PROCESS_DELIMITER } from "utils/constants"; import { preloadLibs } from "utils/functions"; diff --git a/contexts/process/types.ts b/contexts/process/types.ts index 2a677c18..fe284be4 100644 --- a/contexts/process/types.ts +++ b/contexts/process/types.ts @@ -1,10 +1,10 @@ -import type { ComponentProcessProps } from "components/system/Apps/RenderComponent"; -import type { - FileReaders, - ObjectReaders, -} from "components/system/Dialogs/Transfer/useTransferDialog"; -import type { Size } from "components/system/Window/RndWindow/useResizable"; import type * as Monaco from "monaco-editor/esm/vs/editor/editor.api"; +import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; +import { + type FileReaders, + type ObjectReaders, +} from "components/system/Dialogs/Transfer/useTransferDialog"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; type DialogProcessArguments = { fileReaders?: FileReaders | ObjectReaders; diff --git a/contexts/process/useProcessContextState.ts b/contexts/process/useProcessContextState.ts index 2723d2bf..9720b1b6 100644 --- a/contexts/process/useProcessContextState.ts +++ b/contexts/process/useProcessContextState.ts @@ -1,3 +1,4 @@ +import { useCallback, useState } from "react"; import { closeProcess, maximizeProcess, @@ -9,12 +10,11 @@ import { setTitle, setUrl, } from "contexts/process/functions"; -import type { - ProcessArguments, - ProcessElements, - Processes, +import { + type ProcessArguments, + type ProcessElements, + type Processes, } from "contexts/process/types"; -import { useCallback, useState } from "react"; import { TRANSITIONS_IN_MILLISECONDS } from "utils/constants"; type ProcessContextState = { diff --git a/contexts/session/types.ts b/contexts/session/types.ts index 0b35b84c..fc48a0ae 100644 --- a/contexts/session/types.ts +++ b/contexts/session/types.ts @@ -1,7 +1,7 @@ -import type { SortBy } from "components/system/Files/FileManager/useSortBy"; -import type { Size } from "components/system/Window/RndWindow/useResizable"; -import type { Position } from "react-rnd"; -import type { ThemeName } from "styles/themes"; +import { type Position } from "react-rnd"; +import { type SortBy } from "components/system/Files/FileManager/useSortBy"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; +import { type ThemeName } from "styles/themes"; export type UpdateFiles = (newFile?: string, oldFile?: string) => void; diff --git a/contexts/session/useSessionContextState.ts b/contexts/session/useSessionContextState.ts index 295c3496..0134cad3 100644 --- a/contexts/session/useSessionContextState.ts +++ b/contexts/session/useSessionContextState.ts @@ -1,19 +1,24 @@ -import type { ApiError } from "browserfs/dist/node/core/api_error"; -import type { SortBy } from "components/system/Files/FileManager/useSortBy"; -import { useFileSystem } from "contexts/fileSystem"; -import type { - IconPositions, - RecentFiles, - SessionContextState, - SessionData, - SortOrders, - WallpaperFit, - WindowStates, -} from "contexts/session/types"; import { dirname, extname } from "path"; +import { + type SetStateAction, + useCallback, + useEffect, + useRef, + useState, +} from "react"; +import { type ApiError } from "browserfs/dist/node/core/api_error"; +import { type SortBy } from "components/system/Files/FileManager/useSortBy"; +import { useFileSystem } from "contexts/fileSystem"; +import { + type IconPositions, + type RecentFiles, + type SessionContextState, + type SessionData, + type SortOrders, + type WallpaperFit, + type WindowStates, +} from "contexts/session/types"; import defaultSession from "public/session.json"; -import type { SetStateAction } from "react"; -import { useCallback, useEffect, useRef, useState } from "react"; import { DEFAULT_ASCENDING, DEFAULT_CLOCK_SOURCE, diff --git a/contexts/viewport/useViewportContextState.ts b/contexts/viewport/useViewportContextState.ts index f968cb36..62c42da0 100644 --- a/contexts/viewport/useViewportContextState.ts +++ b/contexts/viewport/useViewportContextState.ts @@ -1,10 +1,10 @@ -import type { - FullscreenDocument, - FullscreenElement, - NavigatorWithKeyboard, - ViewportContextState, -} from "contexts/viewport/types"; import { useEffect, useState } from "react"; +import { + type FullscreenDocument, + type FullscreenElement, + type NavigatorWithKeyboard, + type ViewportContextState, +} from "contexts/viewport/types"; import { isFirefox, isSafari } from "utils/functions"; const FULLSCREEN_LOCKED_KEYS = ["MetaLeft", "MetaRight", "Escape"]; diff --git a/e2e/components/apps/FileExplorer.spec.ts b/e2e/components/apps/FileExplorer.spec.ts index a1daca2b..dc645851 100644 --- a/e2e/components/apps/FileExplorer.spec.ts +++ b/e2e/components/apps/FileExplorer.spec.ts @@ -1,3 +1,4 @@ +import { dirname, extname } from "path"; import { expect, test } from "@playwright/test"; import { BASE_APP_FAVICON, @@ -62,7 +63,6 @@ import { windowTitlebarTextIsVisible, windowsAreVisible, } from "e2e/functions"; -import { dirname, extname } from "path"; test.beforeEach(disableWallpaper); test.beforeEach(async ({ page }) => page.goto("/?app=FileExplorer")); diff --git a/e2e/constants.ts b/e2e/constants.ts index 45a3231d..f1dc07fa 100644 --- a/e2e/constants.ts +++ b/e2e/constants.ts @@ -1,4 +1,4 @@ -import type { Locator } from "@playwright/test"; +import { type Locator } from "@playwright/test"; declare global { // eslint-disable-next-line vars-on-top, no-var @@ -76,7 +76,7 @@ export const SELECTION_SELECTOR = `${DESKTOP_SELECTOR}>ol>span`; export const TASKBAR_SELECTOR = `${DESKTOP_SELECTOR}>nav:not([style])`; export const TASKBAR_ENTRIES_SELECTOR = `${TASKBAR_SELECTOR}>ol`; export const TASKBAR_ENTRY_SELECTOR = `${TASKBAR_ENTRIES_SELECTOR}>li`; -export const TASKBAR_ENTRY_PEEK_SELECTOR = `${TASKBAR_ENTRY_SELECTOR}>div:not([type=button])`; +export const TASKBAR_ENTRY_PEEK_SELECTOR = `${TASKBAR_ENTRY_SELECTOR}>div:not([title])`; export const TASKBAR_ENTRY_PEEK_IMAGE_SELECTOR = `${TASKBAR_ENTRY_PEEK_SELECTOR}>img`; export const SEARCH_MENU_SELECTOR = `${DESKTOP_SELECTOR}>nav[style]:not(:has(>ol))`; export const SEARCH_BUTTON_SELECTOR = `${TASKBAR_SELECTOR}>[title='Type here to search']`; @@ -222,7 +222,7 @@ export const TEST_ROOT_FILE_TEXT = "CREDITS.md"; export const TEST_ROOT_FILE_DEFAULT_APP = "Marked"; export const TEST_ROOT_FILE_ALT_APP = "Monaco Editor"; export const TEST_ROOT_FILE_TOOLTIP = - /^Type: Markdown File\nSize: \d\.\d\d KB\nDate modified: \b\d{4}-\d{2}-\d{2} \d{1,2}:\d{2} (?:AM|PM)$/; + /^Type: Markdown File\nSize: \d\.\d\d KB\nDate modified: \d{4}-\d{2}-\d{2} \d{1,2}:\d{2} (?:AM|PM)$/; export const TEST_SEARCH = "CREDITS"; export const TEST_SEARCH_RESULT = /^CREDITS.md$/; diff --git a/e2e/functions.ts b/e2e/functions.ts index dd70e69a..30dc26e2 100644 --- a/e2e/functions.ts +++ b/e2e/functions.ts @@ -1,7 +1,12 @@ -import type { Locator, Page, Response } from "@playwright/test"; -import { expect } from "@playwright/test"; -import type { IsShown, MenuItems } from "e2e/constants"; import { + type Locator, + type Page, + type Response, + expect, +} from "@playwright/test"; +import { + type IsShown, + type MenuItems, BACKGROUND_CANVAS_SELECTOR, CALENDAR_LABEL, CLOCK_LABEL, diff --git a/hooks/useGlobalKeyboardShortcuts.ts b/hooks/useGlobalKeyboardShortcuts.ts index f9f8315a..7efb7f67 100644 --- a/hooks/useGlobalKeyboardShortcuts.ts +++ b/hooks/useGlobalKeyboardShortcuts.ts @@ -1,3 +1,4 @@ +import { useEffect, useRef } from "react"; import { SEARCH_BUTTON_TITLE, START_BUTTON_TITLE, @@ -6,7 +7,6 @@ import { useProcesses } from "contexts/process"; import { useSession } from "contexts/session"; import { useViewport } from "contexts/viewport"; import { useProcessesRef } from "hooks/useProcessesRef"; -import { useEffect, useRef } from "react"; import { KEYPRESS_DEBOUNCE_MS } from "utils/constants"; import { haltEvent, toggleShowDesktop } from "utils/functions"; diff --git a/hooks/useHistory.ts b/hooks/useHistory.ts index 9fd068ab..472a25b7 100644 --- a/hooks/useHistory.ts +++ b/hooks/useHistory.ts @@ -1,5 +1,5 @@ -import { useProcesses } from "contexts/process"; import { useCallback, useEffect, useState } from "react"; +import { useProcesses } from "contexts/process"; type History = { canGoBack: boolean; diff --git a/hooks/useIFrameFocuser.ts b/hooks/useIFrameFocuser.ts index 4f2b5da0..e0858d85 100644 --- a/hooks/useIFrameFocuser.ts +++ b/hooks/useIFrameFocuser.ts @@ -1,6 +1,6 @@ +import { useEffect } from "react"; import { useSession } from "contexts/session"; import { useProcessesRef } from "hooks/useProcessesRef"; -import { useEffect } from "react"; import { ONE_TIME_PASSIVE_EVENT } from "utils/constants"; const useIFrameFocuser = (): void => { diff --git a/hooks/useProcessesRef.tsx b/hooks/useProcessesRef.tsx index 0cbb0b3c..d5b4c142 100644 --- a/hooks/useProcessesRef.tsx +++ b/hooks/useProcessesRef.tsx @@ -1,6 +1,6 @@ -import { useProcesses } from "contexts/process"; -import type { Processes } from "contexts/process/types"; import { useEffect, useRef } from "react"; +import { useProcesses } from "contexts/process"; +import { type Processes } from "contexts/process/types"; export const useProcessesRef = (): React.MutableRefObject => { const { processes } = useProcesses(); diff --git a/hooks/useUrlLoader.ts b/hooks/useUrlLoader.ts index f47aa7ae..6ff851bc 100644 --- a/hooks/useUrlLoader.ts +++ b/hooks/useUrlLoader.ts @@ -1,8 +1,8 @@ +import { useEffect, useRef } from "react"; import { getProcessByFileExtension } from "components/system/Files/FileEntry/functions"; import { useFileSystem } from "contexts/fileSystem"; import { useProcesses } from "contexts/process"; import processDirectory from "contexts/process/directory"; -import { useEffect, useRef } from "react"; import { getExtension, getSearchParam } from "utils/functions"; const useUrlLoader = (): void => { diff --git a/package.json b/package.json index 24599812..4caf7653 100644 --- a/package.json +++ b/package.json @@ -111,9 +111,11 @@ "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-playwright": "^0.18.0", "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-promise": "^6.1.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks-addons": "^0.3.1", + "eslint-plugin-regexp": "^2.1.1", "eslint-plugin-sonarjs": "^0.23.0", "eslint-plugin-sort-keys-fix": "^1.1.2", "eslint-plugin-typescript-sort-keys": "^3.1.0", diff --git a/pages/_app.tsx b/pages/_app.tsx index e093b3a6..f2e9084c 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -1,3 +1,4 @@ +import { type AppProps } from "next/app"; import { ErrorBoundary } from "components/pages/ErrorBoundary"; import Metadata from "components/pages/Metadata"; import StyledApp from "components/pages/StyledApp"; @@ -6,7 +7,6 @@ import { MenuProvider } from "contexts/menu"; import { ProcessProvider } from "contexts/process"; import { SessionProvider } from "contexts/session"; import { ViewportProvider } from "contexts/viewport"; -import type { AppProps } from "next/app"; const App = ({ Component, pageProps }: AppProps): React.ReactElement => ( diff --git a/pages/_document.tsx b/pages/_document.tsx index 0ee13707..1c292e79 100644 --- a/pages/_document.tsx +++ b/pages/_document.tsx @@ -1,5 +1,11 @@ -import type { DocumentContext, DocumentInitialProps } from "next/document"; -import NextDocument, { Head, Html, Main, NextScript } from "next/document"; +import NextDocument, { + type DocumentContext, + type DocumentInitialProps, + Head, + Html, + Main, + NextScript, +} from "next/document"; import Script from "next/script"; import { ServerStyleSheet } from "styled-components"; import { DEFAULT_LOCALE } from "utils/constants"; diff --git a/pages/_error.tsx b/pages/_error.tsx index 8f9872f9..d2f1bed5 100644 --- a/pages/_error.tsx +++ b/pages/_error.tsx @@ -1,4 +1,4 @@ -import type { ErrorProps } from "next/error"; +import { type ErrorProps } from "next/error"; const PageError = ({ statusCode = 0 }: ErrorProps): React.ReactElement => ( <>Error status code: {statusCode} diff --git a/pages/index.tsx b/pages/index.tsx index 34b7eac4..41a02a7f 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import AppsLoader from "components/system/Apps/AppsLoader"; import Desktop from "components/system/Desktop"; import Taskbar from "components/system/Taskbar"; @@ -5,7 +6,6 @@ import useGlobalErrorHandler from "hooks/useGlobalErrorHandler"; import useGlobalKeyboardShortcuts from "hooks/useGlobalKeyboardShortcuts"; import useIFrameFocuser from "hooks/useIFrameFocuser"; import useUrlLoader from "hooks/useUrlLoader"; -import { memo } from "react"; const Index = (): React.ReactElement => { useIFrameFocuser(); diff --git a/playwright.config.ts b/playwright.config.ts index 6034cb2d..cf62671d 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,5 +1,4 @@ -import type { PlaywrightTestConfig } from "@playwright/test"; -import { devices } from "@playwright/test"; +import { type PlaywrightTestConfig, devices } from "@playwright/test"; const { CI, PORT = 3000 } = process.env; const { diff --git a/styles/common/ScrollBars.ts b/styles/common/ScrollBars.ts index 34bd61d6..32b385ba 100644 --- a/styles/common/ScrollBars.ts +++ b/styles/common/ScrollBars.ts @@ -1,5 +1,4 @@ -import type { RuleSet } from "styled-components"; -import { css } from "styled-components"; +import { type RuleSet, css } from "styled-components"; import { DOWN, LEFT, RIGHT, UP } from "styles/ArrowIcons"; import { DEFAULT_SCROLLBAR_WIDTH } from "utils/constants"; diff --git a/styles/defaultTheme/index.ts b/styles/defaultTheme/index.ts index 87715504..922bd0c6 100644 --- a/styles/defaultTheme/index.ts +++ b/styles/defaultTheme/index.ts @@ -1,4 +1,4 @@ -import type { DefaultTheme } from "styled-components"; +import { type DefaultTheme } from "styled-components"; import colors from "styles/defaultTheme/colors"; import formats from "styles/defaultTheme/formats"; import sizes from "styles/defaultTheme/sizes"; diff --git a/styles/themes.ts b/styles/themes.ts index e52a295c..044f6b4d 100644 --- a/styles/themes.ts +++ b/styles/themes.ts @@ -1,4 +1,4 @@ -import type { DefaultTheme } from "styled-components"; +import { type DefaultTheme } from "styled-components"; import defaultTheme from "styles/defaultTheme"; const themes = { defaultTheme }; diff --git a/utils/constants.ts b/utils/constants.ts index 8a632c79..eefbbfc0 100644 --- a/utils/constants.ts +++ b/utils/constants.ts @@ -1,7 +1,7 @@ -import type { Size } from "components/system/Window/RndWindow/useResizable"; -import type { ClockSource, WallpaperFit } from "contexts/session/types"; -import type { AsyncZipOptions } from "fflate"; -import type { ThemeName } from "styles/themes"; +import { type AsyncZipOptions } from "fflate"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; +import { type ClockSource, type WallpaperFit } from "contexts/session/types"; +import { type ThemeName } from "styles/themes"; export const BASE_2D_CONTEXT_OPTIONS: CanvasRenderingContext2DSettings = { alpha: false, diff --git a/utils/ffmpeg/index.ts b/utils/ffmpeg/index.ts index fbfd7566..067bfc41 100644 --- a/utils/ffmpeg/index.ts +++ b/utils/ffmpeg/index.ts @@ -1,9 +1,9 @@ -import type { LocalEcho } from "components/apps/Terminal/types"; import { basename, dirname, extname, join } from "path"; -import type { - FFmpegTranscodeFile, - IFFmpegInstance, - IFFmpegLog, +import { type LocalEcho } from "components/apps/Terminal/types"; +import { + type FFmpegTranscodeFile, + type IFFmpegInstance, + type IFFmpegLog, } from "utils/ffmpeg/types"; import { loadFiles } from "utils/functions"; diff --git a/utils/functions.ts b/utils/functions.ts index fdb585be..9ff731f6 100644 --- a/utils/functions.ts +++ b/utils/functions.ts @@ -1,14 +1,14 @@ -import type { DragPosition } from "components/system/Files/FileManager/useDraggableEntries"; -import type { Size } from "components/system/Window/RndWindow/useResizable"; -import type { Processes, RelativePosition } from "contexts/process/types"; -import type { - IconPosition, - IconPositions, - SortOrders, -} from "contexts/session/types"; -import type { Position } from "eruda"; -import type HtmlToImage from "html-to-image"; import { basename, dirname, extname, join } from "path"; +import { type Position } from "eruda"; +import type HtmlToImage from "html-to-image"; +import { type DragPosition } from "components/system/Files/FileManager/useDraggableEntries"; +import { type Size } from "components/system/Window/RndWindow/useResizable"; +import { type Processes, type RelativePosition } from "contexts/process/types"; +import { + type IconPosition, + type IconPositions, + type SortOrders, +} from "contexts/session/types"; import { DEFAULT_LOCALE, HIGH_PRIORITY_REQUEST, @@ -700,7 +700,9 @@ export const isSafari = (): boolean => { if (typeof window === "undefined") return false; if (IS_SAFARI ?? false) return IS_SAFARI; - IS_SAFARI = /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent); + IS_SAFARI = /^(?:(?!chrome|android).)*safari/i.test( + window.navigator.userAgent + ); return IS_SAFARI; }; diff --git a/utils/imagemagick/index.ts b/utils/imagemagick/index.ts index d9a8efd3..0e4fc587 100644 --- a/utils/imagemagick/index.ts +++ b/utils/imagemagick/index.ts @@ -1,7 +1,7 @@ -import type { LocalEcho } from "components/apps/Terminal/types"; import { basename, dirname, extname, join } from "path"; +import { type LocalEcho } from "components/apps/Terminal/types"; import { loadFiles } from "utils/functions"; -import type { ImageMagickConvertFile } from "utils/imagemagick/types"; +import { type ImageMagickConvertFile } from "utils/imagemagick/types"; export const convert = async ( files: ImageMagickConvertFile[], diff --git a/utils/search.ts b/utils/search.ts index f198987d..c5b01492 100644 --- a/utils/search.ts +++ b/utils/search.ts @@ -1,10 +1,10 @@ -import type IndexedDBFileSystem from "browserfs/dist/node/backend/IndexedDB"; -import type OverlayFS from "browserfs/dist/node/backend/OverlayFS"; -import { useFileSystem } from "contexts/fileSystem"; -import type { RootFileSystem } from "contexts/fileSystem/useAsyncFs"; -import type { Index } from "lunr"; import { basename, extname } from "path"; import { useEffect, useState } from "react"; +import { type Index } from "lunr"; +import type OverlayFS from "browserfs/dist/node/backend/OverlayFS"; +import type IndexedDBFileSystem from "browserfs/dist/node/backend/IndexedDB"; +import { useFileSystem } from "contexts/fileSystem"; +import { type RootFileSystem } from "contexts/fileSystem/useAsyncFs"; import SEARCH_EXTENSIONS from "scripts/searchExtensions.json"; import { HIGH_PRIORITY_REQUEST } from "utils/constants"; import { getExtension, loadFiles } from "utils/functions"; diff --git a/utils/sheetjs.ts b/utils/sheetjs.ts index 758fc601..026d6e22 100644 --- a/utils/sheetjs.ts +++ b/utils/sheetjs.ts @@ -1,5 +1,5 @@ -import { loadFiles } from "utils/functions"; import type * as XLSX from "xlsx"; +import { loadFiles } from "utils/functions"; declare global { interface Window { diff --git a/utils/zipFunctions.ts b/utils/zipFunctions.ts index 1dc7b3cd..4c62d7e0 100644 --- a/utils/zipFunctions.ts +++ b/utils/zipFunctions.ts @@ -1,13 +1,13 @@ -import type SevenZip from "7z-wasm"; -import type { - AsyncZipOptions, - AsyncZippable, - AsyncZippableFile, - Unzipped, -} from "fflate"; import { basename, extname, join } from "path"; -import { BASE_ZIP_CONFIG } from "utils/constants"; +import { + type AsyncZipOptions, + type AsyncZippable, + type AsyncZippableFile, + type Unzipped, +} from "fflate"; +import type SevenZip from "7z-wasm"; import { loadFiles } from "utils/functions"; +import { BASE_ZIP_CONFIG } from "utils/constants"; export const createZippable = (path: string, file: Buffer): AsyncZippable => path diff --git a/yarn.lock b/yarn.lock index 4ad7de7b..84c6d8b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -403,6 +403,11 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.2.tgz#26585b7c0ba36362893d3a3c206ee0c57c389616" integrity sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g== +"@eslint-community/regexpp@^4.8.0", "@eslint-community/regexpp@^4.9.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + "@eslint/eslintrc@^2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" @@ -2350,6 +2355,11 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +comment-parser@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.1.tgz#bdafead37961ac079be11eb7ec65c4d021eaf9cc" + integrity sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -3130,6 +3140,11 @@ eslint-plugin-prettier@^5.0.1: prettier-linter-helpers "^1.0.0" synckit "^0.8.5" +eslint-plugin-promise@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" + integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== + eslint-plugin-react-hooks-addons@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks-addons/-/eslint-plugin-react-hooks-addons-0.3.1.tgz#63a5f7a662a57bf04d646d1cb96944e9a9a08ec3" @@ -3162,6 +3177,19 @@ eslint-plugin-react@^7.33.2: semver "^6.3.1" string.prototype.matchall "^4.0.8" +eslint-plugin-regexp@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-regexp/-/eslint-plugin-regexp-2.1.1.tgz#55211db1992eda01eddf249dfb75b2939540802c" + integrity sha512-FGa/idrL5tzMCnGylyx8DCWTX3vDuEtE/CVqTx+yYwe5qY3JRppbNVkOVGIkQF0klVlrG+LxwAXRXTUr5yU5uA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.9.1" + comment-parser "^1.4.0" + jsdoc-type-pratt-parser "^4.0.0" + refa "^0.12.1" + regexp-ast-analysis "^0.7.1" + scslre "^0.3.0" + eslint-plugin-sonarjs@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.23.0.tgz#0265bad801ea210951672ee3cafbcf5d456ada96" @@ -4903,6 +4931,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsdoc-type-pratt-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz#136f0571a99c184d84ec84662c45c29ceff71114" + integrity sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ== + jsdom@^20.0.0: version "20.0.3" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" @@ -6307,6 +6340,13 @@ redux@^4.0.0, redux@^4.0.5: dependencies: "@babel/runtime" "^7.9.2" +refa@^0.12.0, refa@^0.12.1: + version "0.12.1" + resolved "https://registry.yarnpkg.com/refa/-/refa-0.12.1.tgz#dac13c4782dc22b6bae6cce81a2b863888ea39c6" + integrity sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g== + dependencies: + "@eslint-community/regexpp" "^4.8.0" + reflect.getprototypeof@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" @@ -6329,6 +6369,14 @@ regenerator-runtime@^0.14.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== +regexp-ast-analysis@^0.7.0, regexp-ast-analysis@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/regexp-ast-analysis/-/regexp-ast-analysis-0.7.1.tgz#c0e24cb2a90f6eadd4cbaaba129317e29d29c482" + integrity sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A== + dependencies: + "@eslint-community/regexpp" "^4.8.0" + refa "^0.12.1" + regexp-to-ast@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" @@ -6553,6 +6601,15 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" +scslre@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/scslre/-/scslre-0.3.0.tgz#c3211e9bfc5547fc86b1eabaa34ed1a657060155" + integrity sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ== + dependencies: + "@eslint-community/regexpp" "^4.8.0" + refa "^0.12.0" + regexp-ast-analysis "^0.7.0" + "semver@2 || 3 || 4 || 5": version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"