From 79f23694cdd4d8cb6c3ecddb03317d69aa4a2981 Mon Sep 17 00:00:00 2001 From: Prozilla Date: Tue, 7 May 2024 21:06:07 +0200 Subject: [PATCH] Migration to TypeScript - Stage 2 --- docs/README.md | 3 +- docs/features/README.md | 2 +- docs/features/apps/README.md | 4 +- package-lock.json | 126 ++++++------- package.json | 2 - src/App.tsx | 12 +- .../_utils/button/{Button.jsx => Button.tsx} | 15 +- ...{DropdownButton.jsx => DropdownButton.tsx} | 6 +- .../{Interactable.jsx => Interactable.tsx} | 2 +- .../{ProgressBar.jsx => ProgressBar.tsx} | 16 +- .../actions/{Actions.jsx => Actions.tsx} | 40 ++-- .../{ClickAction.jsx => ClickAction.tsx} | 26 ++- .../actions/{Divider.jsx => Divider.tsx} | 0 ...{DropdownAction.jsx => DropdownAction.tsx} | 19 +- .../{RadioAction.jsx => RadioAction.tsx} | 18 +- .../{ToggleAction.jsx => ToggleAction.tsx} | 21 +-- .../{HeaderMenu.jsx => HeaderMenu.tsx} | 16 +- .../apps/_utils/web-view/WebView.jsx | 50 ----- .../apps/_utils/web-view/WebView.tsx | 48 +++++ .../apps/browser/{Browser.jsx => Browser.tsx} | 8 +- .../{Calculator.jsx => Calculator.tsx} | 2 +- .../{FileExplorer.jsx => FileExplorer.tsx} | 76 ++++---- ...AccessButton.jsx => QuickAccessButton.tsx} | 0 .../{DirectoryList.jsx => DirectoryList.tsx} | 63 +++---- .../{ImagePreview.jsx => ImagePreview.tsx} | 12 +- .../{MediaViewer.jsx => MediaViewer.tsx} | 4 +- .../settings/{Settings.jsx => Settings.tsx} | 12 +- .../{AboutSettings.jsx => AboutSettings.tsx} | 6 +- .../tabs/{AppOption.jsx => AppOption.tsx} | 14 +- ...nceSettings.jsx => AppearanceSettings.tsx} | 31 ++- .../{AppsSettings.jsx => AppsSettings.tsx} | 15 +- ...torageSettings.jsx => StorageSettings.tsx} | 8 +- .../apps/terminal/{Ansi.jsx => Ansi.tsx} | 2 +- .../terminal/{InputLine.jsx => InputLine.tsx} | 32 ++-- src/components/apps/terminal/OutputLine.jsx | 18 -- src/components/apps/terminal/OutputLine.tsx | 17 ++ .../terminal/{Terminal.jsx => Terminal.tsx} | 35 ++-- .../{TextEditor.jsx => TextEditor.tsx} | 22 +-- .../{MarkdownImage.jsx => MarkdownImage.tsx} | 8 +- .../{MarkdownLink.jsx => MarkdownLink.tsx} | 24 +-- .../desktop/{Desktop.jsx => Desktop.tsx} | 56 +++--- .../modals/{ModalView.jsx => ModalView.tsx} | 23 ++- .../modals/{ModalsView.jsx => ModalsView.tsx} | 2 +- .../{WindowedModal.jsx => WindowedModal.tsx} | 9 +- .../{DialogBox.jsx => DialogBox.tsx} | 11 +- ...{FileProperties.jsx => FileProperties.tsx} | 22 +-- .../{FileSelector.jsx => FileSelector.tsx} | 36 ++-- .../modals/share/{Option.jsx => Option.tsx} | 0 .../modals/share/{Share.jsx => Share.tsx} | 16 +- .../taskbar/{Taskbar.jsx => Taskbar.tsx} | 51 +++-- .../app-icon/{AppIcon.jsx => AppIcon.tsx} | 37 ++-- .../indicators/{Battery.jsx => Battery.tsx} | 18 +- .../indicators/{Calendar.jsx => Calendar.tsx} | 4 +- .../indicators/{Network.jsx => Network.tsx} | 4 +- .../indicators/{Volume.jsx => Volume.tsx} | 4 +- .../menus/{HomeMenu.jsx => HomeMenu.tsx} | 12 +- .../menus/{SearchMenu.jsx => SearchMenu.tsx} | 4 +- .../menus/{UtilMenu.jsx => UtilMenu.tsx} | 0 src/components/windows/WindowFallbackView.jsx | 28 --- src/components/windows/WindowFallbackView.tsx | 35 ++++ .../{WindowView.jsx => WindowView.tsx} | 79 ++++---- .../{WindowsView.jsx => WindowsView.tsx} | 20 +- src/config/{apps.config.js => apps.config.ts} | 0 .../{browser.config.js => browser.config.ts} | 2 +- ...lorer.config.js => fileExplorer.config.ts} | 0 ...Viewer.config.js => mediaViewer.config.ts} | 0 ...{settings.config.js => settings.config.ts} | 0 ...{terminal.config.js => terminal.config.ts} | 0 ...tEditor.config.js => textEditor.config.ts} | 0 ...{branding.config.js => branding.config.ts} | 2 +- .../{desktop.config.js => desktop.config.ts} | 0 .../{modals.config.js => modals.config.ts} | 2 +- .../{taskbar.config.js => taskbar.config.ts} | 0 ...{tracking.config.js => tracking.config.ts} | 0 .../{utils.config.js => utils.config.ts} | 0 .../{windows.config.js => windows.config.ts} | 0 src/features/_utils/array.utils.js | 26 --- src/features/_utils/array.utils.ts | 14 ++ .../{browser.utils.js => browser.utils.ts} | 49 ++--- .../_utils/{date.utils.js => date.utils.ts} | 18 +- src/features/_utils/event.utils.js | 49 ----- src/features/_utils/event.utils.ts | 39 ++++ src/features/_utils/number.utils.js | 3 - src/features/_utils/number.utils.ts | 3 + .../{string.utils.js => string.utils.ts} | 6 +- src/features/apps/app.js | 26 --- src/features/apps/app.tsx | 33 ++++ .../apps/{appsManager.js => appsManager.ts} | 43 ++--- .../apps/terminal/_utils/terminal.utils.js | 19 -- .../apps/terminal/_utils/terminal.utils.ts | 10 + src/features/apps/terminal/command.ts | 32 ++-- .../terminal/{commands.js => commands.ts} | 14 +- .../apps/terminal/commands/{cat.js => cat.ts} | 4 +- .../apps/terminal/commands/{cd.js => cd.ts} | 2 +- .../terminal/commands/{clear.js => clear.ts} | 0 .../commands/{compgen.js => compgen.ts} | 2 +- .../commands/{cowsay.js => cowsay.ts} | 4 +- .../apps/terminal/commands/{dir.js => dir.ts} | 0 .../terminal/commands/{echo.js => echo.ts} | 0 .../terminal/commands/{exit.js => exit.ts} | 0 .../commands/{fortune.js => fortune.ts} | 2 +- .../terminal/commands/{help.js => help.ts} | 6 +- .../commands/{hostname.js => hostname.ts} | 0 .../commands/{lolcat.js => lolcat.ts} | 4 +- .../apps/terminal/commands/{ls.js => ls.ts} | 7 +- .../terminal/commands/{make.js => make.ts} | 2 +- .../apps/terminal/commands/{man.js => man.ts} | 6 +- .../terminal/commands/{mkdir.js => mkdir.ts} | 0 .../commands/{neofetch.js => neofetch.ts} | 10 +- .../apps/terminal/commands/{pwd.js => pwd.ts} | 0 .../commands/{reboot.js => reboot.ts} | 2 +- .../commands/{reload.js => reload.ts} | 2 +- .../apps/terminal/commands/{rev.js => rev.ts} | 0 .../apps/terminal/commands/{rm.js => rm.ts} | 4 +- .../terminal/commands/{rmdir.js => rmdir.ts} | 2 +- .../apps/terminal/commands/{sl.js => sl.ts} | 6 +- .../terminal/commands/{touch.js => touch.ts} | 4 +- .../commands/{uptime.js => uptime.ts} | 2 +- .../commands/{whatis.js => whatis.ts} | 6 +- .../commands/{whoami.js => whoami.ts} | 0 src/features/apps/terminal/stream.js | 47 ----- src/features/apps/terminal/stream.ts | 38 ++++ src/features/math/clamp.js | 15 -- src/features/math/clamp.ts | 9 + src/features/math/random.js | 8 - src/features/math/random.ts | 3 + src/features/math/round.js | 9 - src/features/math/round.ts | 4 + src/features/math/{vector2.js => vector2.ts} | 10 +- src/features/modals/modal.js | 108 ----------- src/features/modals/modal.ts | 74 ++++++++ .../{modalsManager.js => modalsManager.ts} | 47 ++--- .../settings/{settings.js => settings.ts} | 44 ++--- src/features/settings/settingsManager.js | 42 ----- src/features/settings/settingsManager.ts | 26 +++ src/features/storage/storageManager.js | 45 ----- src/features/storage/storageManager.ts | 29 +++ ...{trackingManager.js => trackingManager.ts} | 2 +- .../file/{virtualFile.js => virtualFile.ts} | 82 +++----- ...{virtualFileLink.js => virtualFileLink.ts} | 67 +++---- src/features/virtual-drive/folder/index.ts | 2 + .../{virtualFolder.js => virtualFolder.ts} | 177 ++++++------------ .../virtual-drive/folder/virtualFolderLink.js | 158 ---------------- .../virtual-drive/folder/virtualFolderLink.ts | 141 ++++++++++++++ .../root/{defaultData.js => defaultData.ts} | 25 +-- .../root/{virtualRoot.js => virtualRoot.ts} | 63 +++---- .../{virtualBase.js => virtualBase.ts} | 120 +++++------- .../{windowsManager.js => windowsManager.ts} | 100 ++++------ src/features/z-index/zIndexGroup.js | 67 ------- src/features/z-index/zIndexGroup.ts | 40 ++++ .../{zIndexManager.js => zIndexManager.ts} | 16 +- src/hooks/_utils/{history.js => history.ts} | 2 +- src/hooks/_utils/{keyboard.js => keyboard.ts} | 34 ++-- src/hooks/_utils/{mouse.js => mouse.ts} | 0 .../{outsideClick.js => outsideClick.tsx} | 18 +- src/hooks/_utils/{screen.js => screen.ts} | 2 +- ...ollWithShadows.js => scrollWithShadows.ts} | 2 +- src/hooks/modals/{alert.js => alert.tsx} | 27 ++- .../{contextMenu.js => contextMenu.tsx} | 20 +- src/hooks/modals/modalsContext.tsx | 6 +- src/hooks/modals/modalsManagerContext.tsx | 4 +- src/hooks/modals/windowedModal.js | 52 ----- src/hooks/modals/windowedModal.ts | 46 +++++ src/hooks/settings/settingsManagerContext.tsx | 6 +- .../virtual-drive/virtualRootContext.tsx | 4 +- src/hooks/windows/windowsContext.tsx | 7 +- src/hooks/windows/windowsManagerContext.tsx | 4 +- src/hooks/z-index/{zIndex.js => zIndex.ts} | 6 +- src/hooks/z-index/zIndexManagerContext.tsx | 4 +- src/index.tsx | 5 +- ...{reportWebVitals.js => reportWebVitals.ts} | 0 src/{setupTests.js => setupTests.ts} | 0 src/styles/global.css | 1 + tsconfig.json | 4 +- 174 files changed, 1625 insertions(+), 2020 deletions(-) rename src/components/_utils/button/{Button.jsx => Button.tsx} (78%) rename src/components/_utils/dropdown-button/{DropdownButton.jsx => DropdownButton.tsx} (92%) rename src/components/_utils/interactable/{Interactable.jsx => Interactable.tsx} (97%) rename src/components/_utils/progress-bar/{ProgressBar.jsx => ProgressBar.tsx} (62%) rename src/components/actions/{Actions.jsx => Actions.tsx} (68%) rename src/components/actions/actions/{ClickAction.jsx => ClickAction.tsx} (61%) rename src/components/actions/actions/{Divider.jsx => Divider.tsx} (100%) rename src/components/actions/actions/{DropdownAction.jsx => DropdownAction.tsx} (68%) rename src/components/actions/actions/{RadioAction.jsx => RadioAction.tsx} (79%) rename src/components/actions/actions/{ToggleAction.jsx => ToggleAction.tsx} (73%) rename src/components/apps/_utils/header-menu/{HeaderMenu.jsx => HeaderMenu.tsx} (50%) delete mode 100644 src/components/apps/_utils/web-view/WebView.jsx create mode 100644 src/components/apps/_utils/web-view/WebView.tsx rename src/components/apps/browser/{Browser.jsx => Browser.tsx} (94%) rename src/components/apps/calculator/{Calculator.jsx => Calculator.tsx} (98%) rename src/components/apps/file-explorer/{FileExplorer.jsx => FileExplorer.tsx} (80%) rename src/components/apps/file-explorer/{QuickAccessButton.jsx => QuickAccessButton.tsx} (100%) rename src/components/apps/file-explorer/directory-list/{DirectoryList.jsx => DirectoryList.tsx} (82%) rename src/components/apps/file-explorer/directory-list/{ImagePreview.jsx => ImagePreview.tsx} (76%) rename src/components/apps/media-viewer/{MediaViewer.jsx => MediaViewer.tsx} (93%) rename src/components/apps/settings/{Settings.jsx => Settings.tsx} (82%) rename src/components/apps/settings/tabs/{AboutSettings.jsx => AboutSettings.tsx} (87%) rename src/components/apps/settings/tabs/{AppOption.jsx => AppOption.tsx} (93%) rename src/components/apps/settings/tabs/{AppearanceSettings.jsx => AppearanceSettings.tsx} (78%) rename src/components/apps/settings/tabs/{AppsSettings.jsx => AppsSettings.tsx} (63%) rename src/components/apps/settings/tabs/{StorageSettings.jsx => StorageSettings.tsx} (90%) rename src/components/apps/terminal/{Ansi.jsx => Ansi.tsx} (99%) rename src/components/apps/terminal/{InputLine.jsx => InputLine.tsx} (70%) delete mode 100644 src/components/apps/terminal/OutputLine.jsx create mode 100644 src/components/apps/terminal/OutputLine.tsx rename src/components/apps/terminal/{Terminal.jsx => Terminal.tsx} (92%) rename src/components/apps/text-editor/{TextEditor.jsx => TextEditor.tsx} (91%) rename src/components/apps/text-editor/overrides/{MarkdownImage.jsx => MarkdownImage.tsx} (89%) rename src/components/apps/text-editor/overrides/{MarkdownLink.jsx => MarkdownLink.tsx} (83%) rename src/components/desktop/{Desktop.jsx => Desktop.tsx} (82%) rename src/components/modals/{ModalView.jsx => ModalView.tsx} (71%) rename src/components/modals/{ModalsView.jsx => ModalsView.tsx} (94%) rename src/components/modals/_utils/{WindowedModal.jsx => WindowedModal.tsx} (92%) rename src/components/modals/dialog-box/{DialogBox.jsx => DialogBox.tsx} (56%) rename src/components/modals/file-properties/{FileProperties.jsx => FileProperties.tsx} (81%) rename src/components/modals/file-selector/{FileSelector.jsx => FileSelector.tsx} (72%) rename src/components/modals/share/{Option.jsx => Option.tsx} (100%) rename src/components/modals/share/{Share.jsx => Share.tsx} (90%) rename src/components/taskbar/{Taskbar.jsx => Taskbar.tsx} (79%) rename src/components/taskbar/app-icon/{AppIcon.jsx => AppIcon.tsx} (73%) rename src/components/taskbar/indicators/{Battery.jsx => Battery.tsx} (91%) rename src/components/taskbar/indicators/{Calendar.jsx => Calendar.tsx} (96%) rename src/components/taskbar/indicators/{Network.jsx => Network.tsx} (94%) rename src/components/taskbar/indicators/{Volume.jsx => Volume.tsx} (94%) rename src/components/taskbar/menus/{HomeMenu.jsx => HomeMenu.tsx} (93%) rename src/components/taskbar/menus/{SearchMenu.jsx => SearchMenu.tsx} (97%) rename src/components/taskbar/menus/{UtilMenu.jsx => UtilMenu.tsx} (100%) delete mode 100644 src/components/windows/WindowFallbackView.jsx create mode 100644 src/components/windows/WindowFallbackView.tsx rename src/components/windows/{WindowView.jsx => WindowView.tsx} (76%) rename src/components/windows/{WindowsView.jsx => WindowsView.tsx} (81%) rename src/config/{apps.config.js => apps.config.ts} (100%) rename src/config/apps/{browser.config.js => browser.config.ts} (55%) rename src/config/apps/{fileExplorer.config.js => fileExplorer.config.ts} (100%) rename src/config/apps/{mediaViewer.config.js => mediaViewer.config.ts} (100%) rename src/config/apps/{settings.config.js => settings.config.ts} (100%) rename src/config/apps/{terminal.config.js => terminal.config.ts} (100%) rename src/config/apps/{textEditor.config.js => textEditor.config.ts} (100%) rename src/config/{branding.config.js => branding.config.ts} (96%) rename src/config/{desktop.config.js => desktop.config.ts} (100%) rename src/config/{modals.config.js => modals.config.ts} (78%) rename src/config/{taskbar.config.js => taskbar.config.ts} (100%) rename src/config/{tracking.config.js => tracking.config.ts} (100%) rename src/config/{utils.config.js => utils.config.ts} (100%) rename src/config/{windows.config.js => windows.config.ts} (100%) delete mode 100644 src/features/_utils/array.utils.js create mode 100644 src/features/_utils/array.utils.ts rename src/features/_utils/{browser.utils.js => browser.utils.ts} (61%) rename src/features/_utils/{date.utils.js => date.utils.ts} (73%) delete mode 100644 src/features/_utils/event.utils.js create mode 100644 src/features/_utils/event.utils.ts delete mode 100644 src/features/_utils/number.utils.js create mode 100644 src/features/_utils/number.utils.ts rename src/features/_utils/{string.utils.js => string.utils.ts} (83%) delete mode 100644 src/features/apps/app.js create mode 100644 src/features/apps/app.tsx rename src/features/apps/{appsManager.js => appsManager.ts} (76%) delete mode 100644 src/features/apps/terminal/_utils/terminal.utils.js create mode 100644 src/features/apps/terminal/_utils/terminal.utils.ts rename src/features/apps/terminal/{commands.js => commands.ts} (78%) rename src/features/apps/terminal/commands/{cat.js => cat.ts} (92%) rename src/features/apps/terminal/commands/{cd.js => cd.ts} (90%) rename src/features/apps/terminal/commands/{clear.js => clear.ts} (100%) rename src/features/apps/terminal/commands/{compgen.js => compgen.ts} (87%) rename src/features/apps/terminal/commands/{cowsay.js => cowsay.ts} (98%) rename src/features/apps/terminal/commands/{dir.js => dir.ts} (100%) rename src/features/apps/terminal/commands/{echo.js => echo.ts} (100%) rename src/features/apps/terminal/commands/{exit.js => exit.ts} (100%) rename src/features/apps/terminal/commands/{fortune.js => fortune.ts} (97%) rename src/features/apps/terminal/commands/{help.js => help.ts} (80%) rename src/features/apps/terminal/commands/{hostname.js => hostname.ts} (100%) rename src/features/apps/terminal/commands/{lolcat.js => lolcat.ts} (90%) rename src/features/apps/terminal/commands/{ls.js => ls.ts} (75%) rename src/features/apps/terminal/commands/{make.js => make.ts} (79%) rename src/features/apps/terminal/commands/{man.js => man.ts} (92%) rename src/features/apps/terminal/commands/{mkdir.js => mkdir.ts} (100%) rename src/features/apps/terminal/commands/{neofetch.js => neofetch.ts} (88%) rename src/features/apps/terminal/commands/{pwd.js => pwd.ts} (100%) rename src/features/apps/terminal/commands/{reboot.js => reboot.ts} (74%) rename src/features/apps/terminal/commands/{reload.js => reload.ts} (81%) rename src/features/apps/terminal/commands/{rev.js => rev.ts} (100%) rename src/features/apps/terminal/commands/{rm.js => rm.ts} (87%) rename src/features/apps/terminal/commands/{rmdir.js => rmdir.ts} (87%) rename src/features/apps/terminal/commands/{sl.js => sl.ts} (97%) rename src/features/apps/terminal/commands/{touch.js => touch.ts} (92%) rename src/features/apps/terminal/commands/{uptime.js => uptime.ts} (80%) rename src/features/apps/terminal/commands/{whatis.js => whatis.ts} (76%) rename src/features/apps/terminal/commands/{whoami.js => whoami.ts} (100%) delete mode 100644 src/features/apps/terminal/stream.js create mode 100644 src/features/apps/terminal/stream.ts delete mode 100644 src/features/math/clamp.js create mode 100644 src/features/math/clamp.ts delete mode 100644 src/features/math/random.js create mode 100644 src/features/math/random.ts delete mode 100644 src/features/math/round.js create mode 100644 src/features/math/round.ts rename src/features/math/{vector2.js => vector2.ts} (69%) delete mode 100644 src/features/modals/modal.js create mode 100644 src/features/modals/modal.ts rename src/features/modals/{modalsManager.js => modalsManager.ts} (62%) rename src/features/settings/{settings.js => settings.ts} (74%) delete mode 100644 src/features/settings/settingsManager.js create mode 100644 src/features/settings/settingsManager.ts delete mode 100644 src/features/storage/storageManager.js create mode 100644 src/features/storage/storageManager.ts rename src/features/tracking/{trackingManager.js => trackingManager.ts} (82%) rename src/features/virtual-drive/file/{virtualFile.js => virtualFile.ts} (74%) rename src/features/virtual-drive/file/{virtualFileLink.js => virtualFileLink.ts} (51%) create mode 100644 src/features/virtual-drive/folder/index.ts rename src/features/virtual-drive/folder/{virtualFolder.js => virtualFolder.ts} (65%) delete mode 100644 src/features/virtual-drive/folder/virtualFolderLink.js create mode 100644 src/features/virtual-drive/folder/virtualFolderLink.ts rename src/features/virtual-drive/root/{defaultData.js => defaultData.ts} (90%) rename src/features/virtual-drive/root/{virtualRoot.js => virtualRoot.ts} (69%) rename src/features/virtual-drive/{virtualBase.js => virtualBase.ts} (59%) rename src/features/windows/{windowsManager.js => windowsManager.ts} (69%) delete mode 100644 src/features/z-index/zIndexGroup.js create mode 100644 src/features/z-index/zIndexGroup.ts rename src/features/z-index/{zIndexManager.js => zIndexManager.ts} (66%) rename src/hooks/_utils/{history.js => history.ts} (95%) rename src/hooks/_utils/{keyboard.js => keyboard.ts} (75%) rename src/hooks/_utils/{mouse.js => mouse.ts} (100%) rename src/hooks/_utils/{outsideClick.js => outsideClick.tsx} (54%) rename src/hooks/_utils/{screen.js => screen.ts} (96%) rename src/hooks/_utils/{scrollWithShadows.js => scrollWithShadows.ts} (98%) rename src/hooks/modals/{alert.js => alert.tsx} (65%) rename src/hooks/modals/{contextMenu.js => contextMenu.tsx} (69%) delete mode 100644 src/hooks/modals/windowedModal.js create mode 100644 src/hooks/modals/windowedModal.ts rename src/hooks/z-index/{zIndex.js => zIndex.ts} (80%) rename src/{reportWebVitals.js => reportWebVitals.ts} (100%) rename src/{setupTests.js => setupTests.ts} (100%) diff --git a/docs/README.md b/docs/README.md index 586b143..a28d906 100644 --- a/docs/README.md +++ b/docs/README.md @@ -60,7 +60,7 @@ See [docs/configuration](configuration/README.md) for more information. Contains the static build files after [building](#building--deploying) the application. This directory is not included in the GitHub repository. -### Coding style +### Code style Type | Case | Example --- | --- | --- @@ -75,6 +75,7 @@ Global constant variables | MACRO_CASE | ```export const NAME = "Prozilla OS";`` Classes | PascalCase | ```class WindowsManager { }``` React components | PascalCase | ```export function WindowsView({ }) { }``` Functions | camelCase | ```function focusWindow() { }``` +Types | PascalCase | ```type FooBar = boolean;``` ### External files diff --git a/docs/features/README.md b/docs/features/README.md index 228a887..07de1ec 100644 --- a/docs/features/README.md +++ b/docs/features/README.md @@ -10,7 +10,7 @@ To see the status and to-do's of each feature, check the [task board](https://pr ## Table of Contents -- [Actions](storage/README.md) +- [Actions](actions/README.md) - [Apps](apps/README.md) - [Modals](modals/README.md) - [Settings](settings/README.md) diff --git a/docs/features/apps/README.md b/docs/features/apps/README.md index a70129a..31d8758 100644 --- a/docs/features/apps/README.md +++ b/docs/features/apps/README.md @@ -62,7 +62,7 @@ The webview template can be used to turn a webpage into an application by simply ```js // features/apps/apps.js -import { WebView } from "../../components/apps/templates/WebView.jsx"; +import { WebView } from "../../components/apps/templates/WebView"; export default class AppsManager { static APPLICATIONS = [ @@ -91,7 +91,7 @@ export function Example() { ```js // features/apps/apps.js -import { Example } from "../../components/apps/example/Example.jsx"; +import { Example } from "../../components/apps/example/Example"; export default class AppsManager { static APPLICATIONS = [ diff --git a/package-lock.json b/package-lock.json index 5c608eb..361f234 100644 --- a/package-lock.json +++ b/package-lock.json @@ -133,7 +133,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/@babel/eslint-parser": { @@ -166,7 +166,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/@babel/generator": { @@ -228,7 +228,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/@babel/helper-create-class-features-plugin": { @@ -258,7 +258,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { @@ -282,7 +282,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/@babel/helper-define-polyfill-provider": { @@ -523,7 +523,7 @@ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "bin": { - "parser": "bin/babel-parser.js" + "parser": "bin/babel-parser" }, "engines": { "node": ">=6.0.0" @@ -1678,7 +1678,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { @@ -1937,7 +1937,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/@babel/preset-modules": { @@ -2414,7 +2414,7 @@ "argparse": "^2.0.1" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "js-yaml": "bin/js-yaml" } }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { @@ -3300,7 +3300,7 @@ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/@nodelib/fs.scandir": { @@ -5806,7 +5806,7 @@ "dependencies": { "browserslist": "^4.21.5", "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", + "fraction": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -6147,7 +6147,7 @@ "node": ">= 8.0.0" } }, - "node_modules/big.js": { + "node_modules/big": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", @@ -6289,7 +6289,7 @@ "update-browserslist-db": "^1.0.11" }, "bin": { - "browserslist": "cli.js" + "browserslist": "cli" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" @@ -7329,7 +7329,7 @@ } } }, - "node_modules/decimal.js": { + "node_modules/decimal": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" @@ -7677,7 +7677,7 @@ "jake": "^10.8.5" }, "bin": { - "ejs": "bin/cli.js" + "ejs": "bin/cli" }, "engines": { "node": ">=0.10.0" @@ -7977,8 +7977,8 @@ "esutils": "^2.0.2" }, "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "escodegen": "bin/escodegen", + "esgenerate": "bin/esgenerate" }, "engines": { "node": ">=6.0" @@ -8041,7 +8041,7 @@ "text-table": "^0.2.0" }, "bin": { - "eslint": "bin/eslint.js" + "eslint": "bin/eslint" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -8296,7 +8296,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/eslint-plugin-jsdoc": { @@ -8368,7 +8368,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/eslint-plugin-react": { @@ -8445,7 +8445,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/eslint-plugin-testing-library": { @@ -8687,7 +8687,7 @@ "argparse": "^2.0.1" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "js-yaml": "bin/js-yaml" } }, "node_modules/eslint/node_modules/supports-color": { @@ -8733,8 +8733,8 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "esparse": "bin/esparse", + "esvalidate": "bin/esvalidate" }, "engines": { "node": ">=4" @@ -9379,7 +9379,7 @@ "node": ">= 0.6" } }, - "node_modules/fraction.js": { + "node_modules/fraction": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", @@ -9557,8 +9557,8 @@ "globby": "^6.1.0" }, "bin": { - "gh-pages": "bin/gh-pages.js", - "gh-pages-clean": "bin/gh-pages-clean.js" + "gh-pages": "bin/gh-pages", + "gh-pages-clean": "bin/gh-pages-clean" }, "engines": { "node": ">=10" @@ -9904,7 +9904,7 @@ "he": "bin/he" } }, - "node_modules/highlight.js": { + "node_modules/highlight": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", @@ -9920,7 +9920,7 @@ "node": ">= 6.0.0" } }, - "node_modules/hpack.js": { + "node_modules/hpack": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", @@ -10008,7 +10008,7 @@ "terser": "^5.10.0" }, "bin": { - "html-minifier-terser": "cli.js" + "html-minifier-terser": "cli" }, "engines": { "node": ">=12" @@ -10235,7 +10235,7 @@ "resolve-cwd": "^3.0.0" }, "bin": { - "import-local-fixture": "fixtures/cli.js" + "import-local-fixture": "fixtures/cli" }, "engines": { "node": ">=8" @@ -10292,7 +10292,7 @@ "node": ">= 0.4" } }, - "node_modules/ipaddr.js": { + "node_modules/ipaddr": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", @@ -10487,7 +10487,7 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "bin": { - "is-docker": "cli.js" + "is-docker": "cli" }, "engines": { "node": ">=8" @@ -10834,7 +10834,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/istanbul-lib-report": { @@ -10925,7 +10925,7 @@ "minimatch": "^3.1.2" }, "bin": { - "jake": "bin/cli.js" + "jake": "bin/cli" }, "engines": { "node": ">=10" @@ -11005,7 +11005,7 @@ "jest-cli": "^27.5.1" }, "bin": { - "jest": "bin/jest.js" + "jest": "bin/jest" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -11144,7 +11144,7 @@ "yargs": "^16.2.0" }, "bin": { - "jest": "bin/jest.js" + "jest": "bin/jest" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -12877,7 +12877,7 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", "bin": { - "jiti": "bin/jiti.js" + "jiti": "bin/jiti" } }, "node_modules/js-tokens": { @@ -12894,7 +12894,7 @@ "esprima": "^4.0.0" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "js-yaml": "bin/js-yaml" } }, "node_modules/jsdoc-type-pratt-parser": { @@ -12917,7 +12917,7 @@ "cssom": "^0.4.4", "cssstyle": "^2.3.0", "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", + "decimal": "^10.2.1", "domexception": "^2.0.1", "escodegen": "^2.0.0", "form-data": "^3.0.0", @@ -12987,7 +12987,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { - "json5": "lib/cli.js" + "json5": "lib/cli" }, "engines": { "node": ">=6" @@ -13118,7 +13118,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dependencies": { - "big.js": "^5.2.2", + "big": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" }, @@ -13178,7 +13178,7 @@ "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { - "loose-envify": "cli.js" + "loose-envify": "cli" } }, "node_modules/lower-case": { @@ -13195,7 +13195,7 @@ "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", "dependencies": { "fault": "^1.0.0", - "highlight.js": "~10.7.0" + "highlight": "~10.7.0" }, "funding": { "type": "github", @@ -13215,7 +13215,7 @@ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "bin": { - "lz-string": "bin/bin.js" + "lz-string": "bin/bin" } }, "node_modules/magic-string": { @@ -13245,7 +13245,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/makeerror": { @@ -13334,7 +13334,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "bin": { - "mime": "cli.js" + "mime": "cli" }, "engines": { "node": ">=4" @@ -13474,7 +13474,7 @@ "minimist": "^1.2.6" }, "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "bin/cmd" } }, "node_modules/ms": { @@ -13491,7 +13491,7 @@ "thunky": "^1.0.2" }, "bin": { - "multicast-dns": "cli.js" + "multicast-dns": "cli" } }, "node_modules/mz": { @@ -15502,13 +15502,13 @@ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dependencies": { "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "ipaddr": "1.9.1" }, "engines": { "node": ">= 0.10" } }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { + "node_modules/proxy-addr/node_modules/ipaddr": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", @@ -15890,7 +15890,7 @@ "workbox-webpack-plugin": "^6.4.1" }, "bin": { - "react-scripts": "bin/react-scripts.js" + "react-scripts": "bin/react-scripts" }, "engines": { "node": ">=14.0.0" @@ -15937,7 +15937,7 @@ "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", "dependencies": { "@babel/runtime": "^7.3.1", - "highlight.js": "^10.4.1", + "highlight": "^10.4.1", "lowlight": "^1.17.0", "prismjs": "^1.27.0", "refractor": "^3.6.0" @@ -16314,7 +16314,7 @@ "glob": "^7.1.3" }, "bin": { - "rimraf": "bin.js" + "rimraf": "bin" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -16575,7 +16575,7 @@ "lru-cache": "^6.0.0" }, "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" }, "engines": { "node": ">=10" @@ -16954,7 +16954,7 @@ "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", + "hpack": "^2.1.6", "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" @@ -17460,8 +17460,8 @@ "sucrase": "^3.32.0" }, "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" + "tailwind": "lib/cli", + "tailwindcss": "lib/cli" }, "engines": { "node": ">=14.0.0" @@ -17746,7 +17746,7 @@ "minimist": "^1.2.0" }, "bin": { - "json5": "lib/cli.js" + "json5": "lib/cli" } }, "node_modules/tsconfig-paths/node_modules/strip-bom": { @@ -18031,7 +18031,7 @@ "picocolors": "^1.0.0" }, "bin": { - "update-browserslist-db": "cli.js" + "update-browserslist-db": "cli" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -18207,7 +18207,7 @@ "webpack-sources": "^3.2.3" }, "bin": { - "webpack": "bin/webpack.js" + "webpack": "bin/webpack" }, "engines": { "node": ">=10.13.0" @@ -18316,7 +18316,7 @@ "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", + "ipaddr": "^2.0.1", "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", @@ -18330,7 +18330,7 @@ "ws": "^8.13.0" }, "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" + "webpack-dev-server": "bin/webpack-dev-server" }, "engines": { "node": ">= 12.13.0" diff --git a/package.json b/package.json index d079e0c..0224073 100644 --- a/package.json +++ b/package.json @@ -95,8 +95,6 @@ ], "jsdoc/check-values": "warn", "jsdoc/empty-tags": "warn", - "jsdoc/check-param-names": "warn", - "jsdoc/check-property-names": "warn", "jsdoc/check-access": "warn", "jsdoc/check-alignment": "warn", "jsdoc/multiline-blocks": "warn", diff --git a/src/App.tsx b/src/App.tsx index 70ee040..c1c98ad 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,14 +1,14 @@ import styles from "./App.module.css"; -import { Taskbar } from "./components/taskbar/Taskbar.jsx"; +import { Taskbar } from "./components/taskbar/Taskbar"; import { WindowsManagerProvider } from "./hooks/windows/windowsManagerContext"; -import { WindowsView } from "./components/windows/WindowsView.jsx"; +import { WindowsView } from "./components/windows/WindowsView"; import { VirtualRootProvider } from "./hooks/virtual-drive/virtualRootContext"; -import { Desktop } from "./components/desktop/Desktop.jsx"; +import { Desktop } from "./components/desktop/Desktop"; import { SettingsManagerProvider } from "./hooks/settings/settingsManagerContext"; -import { ModalsView } from "./components/modals/ModalsView.jsx"; -import React, { FC, useEffect } from "react"; +import { ModalsView } from "./components/modals/ModalsView"; +import { FC, useEffect } from "react"; import { ZIndexManagerProvider } from "./hooks/z-index/zIndexManagerContext"; -import { TrackingManager } from "./features/tracking/trackingManager.js"; +import { TrackingManager } from "./features/tracking/trackingManager"; import { ModalsManagerProvider } from "./hooks/modals/modalsManagerContext"; TrackingManager.initialize(); diff --git a/src/components/_utils/button/Button.jsx b/src/components/_utils/button/Button.tsx similarity index 78% rename from src/components/_utils/button/Button.jsx rename to src/components/_utils/button/Button.tsx index 3270d28..789c044 100644 --- a/src/components/_utils/button/Button.jsx +++ b/src/components/_utils/button/Button.tsx @@ -1,13 +1,16 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import styles from "./Button.module.css"; import { faExternalLink } from "@fortawesome/free-solid-svg-icons"; +import { ReactNode } from "react"; -/** - * @param {object} props - * @param {string} props.className - * @param {string} props.href - */ -export function Button(props) { +interface ButtonProps { + className?: string; + href?: string; + children?: ReactNode; + [key: string]: any; +} + +export function Button(props: ButtonProps) { let { className = "" } = props; const { href, children } = props; diff --git a/src/components/_utils/dropdown-button/DropdownButton.jsx b/src/components/_utils/dropdown-button/DropdownButton.tsx similarity index 92% rename from src/components/_utils/dropdown-button/DropdownButton.jsx rename to src/components/_utils/dropdown-button/DropdownButton.tsx index 139ea01..521d02e 100644 --- a/src/components/_utils/dropdown-button/DropdownButton.jsx +++ b/src/components/_utils/dropdown-button/DropdownButton.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from "react"; import styles from "./DropdownButton.module.css"; -import OutsideClickListener from "../../../hooks/_utils/outsideClick.js"; -import { formatShortcut } from "../../../features/_utils/string.utils.js"; +import OutsideClickListener from "../../../hooks/_utils/outsideClick"; +import { formatShortcut } from "../../../features/_utils/string.utils"; /** * @param {object} props @@ -25,7 +25,7 @@ export function DropdownButton({ label, options, shortcuts }) { {open && options ? (
- {Object.entries(options).map(([label, callback]) => + {Object.entries(options).map(([label, callback]: [label: string, callback: Function]) =>
; } \ No newline at end of file diff --git a/src/components/actions/actions/RadioAction.jsx b/src/components/actions/actions/RadioAction.tsx similarity index 79% rename from src/components/actions/actions/RadioAction.jsx rename to src/components/actions/actions/RadioAction.tsx index 472b7fb..5e75f59 100644 --- a/src/components/actions/actions/RadioAction.jsx +++ b/src/components/actions/actions/RadioAction.tsx @@ -1,9 +1,10 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { formatShortcut } from "../../../features/_utils/string.utils.js"; +import { formatShortcut } from "../../../features/_utils/string.utils"; import styles from "../Actions.module.css"; import { faCircleDot } from "@fortawesome/free-solid-svg-icons"; -import { useState } from "react"; +import { ReactNode, useState } from "react"; import { faCircle } from "@fortawesome/free-regular-svg-icons"; +import { ActionProps } from "../Actions"; /** * @param {object} props @@ -15,14 +16,23 @@ import { faCircle } from "@fortawesome/free-regular-svg-icons"; * @param {number} props.initialIndex * @param {Function} props.onTrigger */ -export function RadioAction({ actionId, options, initialIndex, onTrigger }) { + +interface RadioActionProps extends ActionProps { + options: { + label: string; + shortcut?: string[] + }[]; + initialIndex: number; +} + +export function RadioAction({ actionId, options, initialIndex, onTrigger }: RadioActionProps): ReactNode { const [activeIndex, setActiveIndex] = useState(initialIndex ?? 0); return (
{options.map(({ label, shortcut }, index) =>