From 163c9625fabd5e85521e244704196861936090b0 Mon Sep 17 00:00:00 2001 From: Oliver Schwendener Date: Tue, 16 Jan 2024 16:50:00 +0100 Subject: [PATCH] Simplified extension cliend code organization --- src/renderer/{ => Core}/App.tsx | 0 src/renderer/{ => Core}/BaseLayout.tsx | 0 src/renderer/Core/Extension.tsx | 12 ++++++++ src/renderer/{ => Core}/ExtensionProps.ts | 0 src/renderer/{ => Core}/Footer.tsx | 0 src/renderer/{ => Core}/Header.tsx | 0 src/renderer/{ => Core}/Hooks/index.ts | 1 + .../{ => Core}/Hooks/useContextBridge.ts | 0 src/renderer/Core/Hooks/useExtensionProps.ts | 13 +++++++++ .../{ => Core}/Hooks/useExtensionSetting.ts | 0 .../{ => Core}/Hooks/useScrollbar.test.ts | 0 src/renderer/{ => Core}/Hooks/useScrollbar.ts | 0 .../{ => Core}/Hooks/useSearchResultItems.ts | 0 src/renderer/{ => Core}/Hooks/useSetting.ts | 0 src/renderer/{ => Core}/Hooks/useTheme.ts | 0 .../{ => Core}/I18n/getBrowserLanguage.ts | 0 src/renderer/{ => Core}/I18n/index.ts | 0 src/renderer/{ => Core}/I18n/resources.ts | 0 .../{ => Core}/I18n/supportedLanguages.ts | 0 src/renderer/{ => Core}/I18n/useI18n.ts | 0 .../{ => Core}/Search/ActionsMenu.tsx | 0 .../{ => Core}/Search/ConfirmationDialog.tsx | 0 .../{ => Core}/Search/FavoritesList.tsx | 0 src/renderer/{ => Core}/Search/FluentIcon.tsx | 0 .../Search/Helpers/elementIsVisible.ts | 0 .../filterSearchResultItemsBySearchTerm.ts | 0 ...itlerSearchResultItemsBySearchTerm.test.ts | 0 .../{ => Core}/Search/Helpers/index.ts | 0 .../{ => Core}/Search/KeyboardEventHandler.ts | 0 src/renderer/{ => Core}/Search/Search.tsx | 0 .../{ => Core}/Search/SearchResultList.tsx | 0 .../Search/SearchResultListItem.tsx | 0 src/renderer/{ => Core}/Search/index.ts | 0 .../{ => Core}/Settings/Navigation.tsx | 0 .../{ => Core}/Settings/Pages/About.tsx | 0 .../{ => Core}/Settings/Pages/Appearance.tsx | 0 .../{ => Core}/Settings/Pages/Debug.tsx | 0 .../Settings/Pages/ExtensionSettings.tsx | 10 ++----- .../{ => Core}/Settings/Pages/Extensions.tsx | 0 .../{ => Core}/Settings/Pages/General.tsx | 0 .../Settings/Pages/SearchEngine.tsx | 0 .../{ => Core}/Settings/Pages/ThemeOption.tsx | 0 .../{ => Core}/Settings/Pages/Window.tsx | 0 .../{ => Core}/Settings/Pages/index.tsx | 0 src/renderer/{ => Core}/Settings/Section.tsx | 0 .../{ => Core}/Settings/SectionList.tsx | 0 src/renderer/{ => Core}/Settings/Settings.tsx | 0 .../{ => Core}/Settings/SettingsHeader.tsx | 0 src/renderer/{ => Core}/Settings/index.ts | 0 src/renderer/{ => Core}/Settings/isType.ts | 0 src/renderer/{ => Core}/Theme/ThemeMap.ts | 0 src/renderer/{ => Core}/Theme/ThemeName.ts | 0 .../{ => Core}/Theme/getAvailableThemes.ts | 0 src/renderer/{ => Core}/Theme/getTheme.ts | 0 src/renderer/{ => Core}/Theme/index.ts | 0 src/renderer/{ => Core}/Theme/themes.ts | 0 src/renderer/{ => Core}/ThemeContext.tsx | 0 .../{ => Core}/useAppCssProperties.ts | 0 src/renderer/{ => Core}/vite-env.d.ts | 0 src/renderer/{ => Core}/window.d.ts | 0 src/renderer/Extension.tsx | 26 ----------------- .../ApplicationSearchSettings.tsx | 2 +- .../ApplicationSearch/MacOs/MacOsSettings.tsx | 6 ++-- .../DeeplTranslator/DeeplTranslator.tsx | 8 ++--- .../DeeplTranslatorSettings.tsx | 6 ++-- .../Extensions/DeeplTranslator/Translator.tsx | 2 +- src/renderer/Extensions/index.ts | 2 -- src/renderer/Extensions/index.tsx | 25 ++++++++++++++++ src/renderer/index.tsx | 2 +- tsconfig.renderer.json | 3 +- vite.config.mts | 29 ++++++++++++------- 71 files changed, 87 insertions(+), 60 deletions(-) rename src/renderer/{ => Core}/App.tsx (100%) rename src/renderer/{ => Core}/BaseLayout.tsx (100%) create mode 100644 src/renderer/Core/Extension.tsx rename src/renderer/{ => Core}/ExtensionProps.ts (100%) rename src/renderer/{ => Core}/Footer.tsx (100%) rename src/renderer/{ => Core}/Header.tsx (100%) rename src/renderer/{ => Core}/Hooks/index.ts (84%) rename src/renderer/{ => Core}/Hooks/useContextBridge.ts (100%) create mode 100644 src/renderer/Core/Hooks/useExtensionProps.ts rename src/renderer/{ => Core}/Hooks/useExtensionSetting.ts (100%) rename src/renderer/{ => Core}/Hooks/useScrollbar.test.ts (100%) rename src/renderer/{ => Core}/Hooks/useScrollbar.ts (100%) rename src/renderer/{ => Core}/Hooks/useSearchResultItems.ts (100%) rename src/renderer/{ => Core}/Hooks/useSetting.ts (100%) rename src/renderer/{ => Core}/Hooks/useTheme.ts (100%) rename src/renderer/{ => Core}/I18n/getBrowserLanguage.ts (100%) rename src/renderer/{ => Core}/I18n/index.ts (100%) rename src/renderer/{ => Core}/I18n/resources.ts (100%) rename src/renderer/{ => Core}/I18n/supportedLanguages.ts (100%) rename src/renderer/{ => Core}/I18n/useI18n.ts (100%) rename src/renderer/{ => Core}/Search/ActionsMenu.tsx (100%) rename src/renderer/{ => Core}/Search/ConfirmationDialog.tsx (100%) rename src/renderer/{ => Core}/Search/FavoritesList.tsx (100%) rename src/renderer/{ => Core}/Search/FluentIcon.tsx (100%) rename src/renderer/{ => Core}/Search/Helpers/elementIsVisible.ts (100%) rename src/renderer/{ => Core}/Search/Helpers/filterSearchResultItemsBySearchTerm.ts (100%) rename src/renderer/{ => Core}/Search/Helpers/fitlerSearchResultItemsBySearchTerm.test.ts (100%) rename src/renderer/{ => Core}/Search/Helpers/index.ts (100%) rename src/renderer/{ => Core}/Search/KeyboardEventHandler.ts (100%) rename src/renderer/{ => Core}/Search/Search.tsx (100%) rename src/renderer/{ => Core}/Search/SearchResultList.tsx (100%) rename src/renderer/{ => Core}/Search/SearchResultListItem.tsx (100%) rename src/renderer/{ => Core}/Search/index.ts (100%) rename src/renderer/{ => Core}/Settings/Navigation.tsx (100%) rename src/renderer/{ => Core}/Settings/Pages/About.tsx (100%) rename src/renderer/{ => Core}/Settings/Pages/Appearance.tsx (100%) rename src/renderer/{ => Core}/Settings/Pages/Debug.tsx (100%) rename src/renderer/{ => Core}/Settings/Pages/ExtensionSettings.tsx (56%) rename src/renderer/{ => Core}/Settings/Pages/Extensions.tsx (100%) rename src/renderer/{ => Core}/Settings/Pages/General.tsx (100%) rename src/renderer/{ => Core}/Settings/Pages/SearchEngine.tsx (100%) rename src/renderer/{ => Core}/Settings/Pages/ThemeOption.tsx (100%) rename src/renderer/{ => Core}/Settings/Pages/Window.tsx (100%) rename src/renderer/{ => Core}/Settings/Pages/index.tsx (100%) rename src/renderer/{ => Core}/Settings/Section.tsx (100%) rename src/renderer/{ => Core}/Settings/SectionList.tsx (100%) rename src/renderer/{ => Core}/Settings/Settings.tsx (100%) rename src/renderer/{ => Core}/Settings/SettingsHeader.tsx (100%) rename src/renderer/{ => Core}/Settings/index.ts (100%) rename src/renderer/{ => Core}/Settings/isType.ts (100%) rename src/renderer/{ => Core}/Theme/ThemeMap.ts (100%) rename src/renderer/{ => Core}/Theme/ThemeName.ts (100%) rename src/renderer/{ => Core}/Theme/getAvailableThemes.ts (100%) rename src/renderer/{ => Core}/Theme/getTheme.ts (100%) rename src/renderer/{ => Core}/Theme/index.ts (100%) rename src/renderer/{ => Core}/Theme/themes.ts (100%) rename src/renderer/{ => Core}/ThemeContext.tsx (100%) rename src/renderer/{ => Core}/useAppCssProperties.ts (100%) rename src/renderer/{ => Core}/vite-env.d.ts (100%) rename src/renderer/{ => Core}/window.d.ts (100%) delete mode 100644 src/renderer/Extension.tsx delete mode 100644 src/renderer/Extensions/index.ts create mode 100644 src/renderer/Extensions/index.tsx diff --git a/src/renderer/App.tsx b/src/renderer/Core/App.tsx similarity index 100% rename from src/renderer/App.tsx rename to src/renderer/Core/App.tsx diff --git a/src/renderer/BaseLayout.tsx b/src/renderer/Core/BaseLayout.tsx similarity index 100% rename from src/renderer/BaseLayout.tsx rename to src/renderer/Core/BaseLayout.tsx diff --git a/src/renderer/Core/Extension.tsx b/src/renderer/Core/Extension.tsx new file mode 100644 index 00000000..a01a1228 --- /dev/null +++ b/src/renderer/Core/Extension.tsx @@ -0,0 +1,12 @@ +import { useParams } from "react-router"; +import { getExtension } from "../Extensions"; + +export const Extension = () => { + const extensionId = useParams().extensionId; + + if (!extensionId) { + return <>Missing extension id; + } + + return getExtension(extensionId)?.extension ?? <>Extension with id {extensionId} did not provide any UI; +}; diff --git a/src/renderer/ExtensionProps.ts b/src/renderer/Core/ExtensionProps.ts similarity index 100% rename from src/renderer/ExtensionProps.ts rename to src/renderer/Core/ExtensionProps.ts diff --git a/src/renderer/Footer.tsx b/src/renderer/Core/Footer.tsx similarity index 100% rename from src/renderer/Footer.tsx rename to src/renderer/Core/Footer.tsx diff --git a/src/renderer/Header.tsx b/src/renderer/Core/Header.tsx similarity index 100% rename from src/renderer/Header.tsx rename to src/renderer/Core/Header.tsx diff --git a/src/renderer/Hooks/index.ts b/src/renderer/Core/Hooks/index.ts similarity index 84% rename from src/renderer/Hooks/index.ts rename to src/renderer/Core/Hooks/index.ts index 2afc72e8..b69dfb2d 100644 --- a/src/renderer/Hooks/index.ts +++ b/src/renderer/Core/Hooks/index.ts @@ -1,4 +1,5 @@ export * from "./useContextBridge"; +export * from "./useExtensionProps"; export * from "./useExtensionSetting"; export * from "./useScrollbar"; export * from "./useSearchResultItems"; diff --git a/src/renderer/Hooks/useContextBridge.ts b/src/renderer/Core/Hooks/useContextBridge.ts similarity index 100% rename from src/renderer/Hooks/useContextBridge.ts rename to src/renderer/Core/Hooks/useContextBridge.ts diff --git a/src/renderer/Core/Hooks/useExtensionProps.ts b/src/renderer/Core/Hooks/useExtensionProps.ts new file mode 100644 index 00000000..122fcacb --- /dev/null +++ b/src/renderer/Core/Hooks/useExtensionProps.ts @@ -0,0 +1,13 @@ +import { ExtensionProps } from "@Core/ExtensionProps"; +import { useNavigate } from "react-router"; +import { useContextBridge } from "./useContextBridge"; + +export const useExtensionProps = (): ExtensionProps => { + const navigate = useNavigate(); + const { contextBridge } = useContextBridge(); + + return { + contextBridge, + goBack: () => navigate({ pathname: "/" }), + }; +}; diff --git a/src/renderer/Hooks/useExtensionSetting.ts b/src/renderer/Core/Hooks/useExtensionSetting.ts similarity index 100% rename from src/renderer/Hooks/useExtensionSetting.ts rename to src/renderer/Core/Hooks/useExtensionSetting.ts diff --git a/src/renderer/Hooks/useScrollbar.test.ts b/src/renderer/Core/Hooks/useScrollbar.test.ts similarity index 100% rename from src/renderer/Hooks/useScrollbar.test.ts rename to src/renderer/Core/Hooks/useScrollbar.test.ts diff --git a/src/renderer/Hooks/useScrollbar.ts b/src/renderer/Core/Hooks/useScrollbar.ts similarity index 100% rename from src/renderer/Hooks/useScrollbar.ts rename to src/renderer/Core/Hooks/useScrollbar.ts diff --git a/src/renderer/Hooks/useSearchResultItems.ts b/src/renderer/Core/Hooks/useSearchResultItems.ts similarity index 100% rename from src/renderer/Hooks/useSearchResultItems.ts rename to src/renderer/Core/Hooks/useSearchResultItems.ts diff --git a/src/renderer/Hooks/useSetting.ts b/src/renderer/Core/Hooks/useSetting.ts similarity index 100% rename from src/renderer/Hooks/useSetting.ts rename to src/renderer/Core/Hooks/useSetting.ts diff --git a/src/renderer/Hooks/useTheme.ts b/src/renderer/Core/Hooks/useTheme.ts similarity index 100% rename from src/renderer/Hooks/useTheme.ts rename to src/renderer/Core/Hooks/useTheme.ts diff --git a/src/renderer/I18n/getBrowserLanguage.ts b/src/renderer/Core/I18n/getBrowserLanguage.ts similarity index 100% rename from src/renderer/I18n/getBrowserLanguage.ts rename to src/renderer/Core/I18n/getBrowserLanguage.ts diff --git a/src/renderer/I18n/index.ts b/src/renderer/Core/I18n/index.ts similarity index 100% rename from src/renderer/I18n/index.ts rename to src/renderer/Core/I18n/index.ts diff --git a/src/renderer/I18n/resources.ts b/src/renderer/Core/I18n/resources.ts similarity index 100% rename from src/renderer/I18n/resources.ts rename to src/renderer/Core/I18n/resources.ts diff --git a/src/renderer/I18n/supportedLanguages.ts b/src/renderer/Core/I18n/supportedLanguages.ts similarity index 100% rename from src/renderer/I18n/supportedLanguages.ts rename to src/renderer/Core/I18n/supportedLanguages.ts diff --git a/src/renderer/I18n/useI18n.ts b/src/renderer/Core/I18n/useI18n.ts similarity index 100% rename from src/renderer/I18n/useI18n.ts rename to src/renderer/Core/I18n/useI18n.ts diff --git a/src/renderer/Search/ActionsMenu.tsx b/src/renderer/Core/Search/ActionsMenu.tsx similarity index 100% rename from src/renderer/Search/ActionsMenu.tsx rename to src/renderer/Core/Search/ActionsMenu.tsx diff --git a/src/renderer/Search/ConfirmationDialog.tsx b/src/renderer/Core/Search/ConfirmationDialog.tsx similarity index 100% rename from src/renderer/Search/ConfirmationDialog.tsx rename to src/renderer/Core/Search/ConfirmationDialog.tsx diff --git a/src/renderer/Search/FavoritesList.tsx b/src/renderer/Core/Search/FavoritesList.tsx similarity index 100% rename from src/renderer/Search/FavoritesList.tsx rename to src/renderer/Core/Search/FavoritesList.tsx diff --git a/src/renderer/Search/FluentIcon.tsx b/src/renderer/Core/Search/FluentIcon.tsx similarity index 100% rename from src/renderer/Search/FluentIcon.tsx rename to src/renderer/Core/Search/FluentIcon.tsx diff --git a/src/renderer/Search/Helpers/elementIsVisible.ts b/src/renderer/Core/Search/Helpers/elementIsVisible.ts similarity index 100% rename from src/renderer/Search/Helpers/elementIsVisible.ts rename to src/renderer/Core/Search/Helpers/elementIsVisible.ts diff --git a/src/renderer/Search/Helpers/filterSearchResultItemsBySearchTerm.ts b/src/renderer/Core/Search/Helpers/filterSearchResultItemsBySearchTerm.ts similarity index 100% rename from src/renderer/Search/Helpers/filterSearchResultItemsBySearchTerm.ts rename to src/renderer/Core/Search/Helpers/filterSearchResultItemsBySearchTerm.ts diff --git a/src/renderer/Search/Helpers/fitlerSearchResultItemsBySearchTerm.test.ts b/src/renderer/Core/Search/Helpers/fitlerSearchResultItemsBySearchTerm.test.ts similarity index 100% rename from src/renderer/Search/Helpers/fitlerSearchResultItemsBySearchTerm.test.ts rename to src/renderer/Core/Search/Helpers/fitlerSearchResultItemsBySearchTerm.test.ts diff --git a/src/renderer/Search/Helpers/index.ts b/src/renderer/Core/Search/Helpers/index.ts similarity index 100% rename from src/renderer/Search/Helpers/index.ts rename to src/renderer/Core/Search/Helpers/index.ts diff --git a/src/renderer/Search/KeyboardEventHandler.ts b/src/renderer/Core/Search/KeyboardEventHandler.ts similarity index 100% rename from src/renderer/Search/KeyboardEventHandler.ts rename to src/renderer/Core/Search/KeyboardEventHandler.ts diff --git a/src/renderer/Search/Search.tsx b/src/renderer/Core/Search/Search.tsx similarity index 100% rename from src/renderer/Search/Search.tsx rename to src/renderer/Core/Search/Search.tsx diff --git a/src/renderer/Search/SearchResultList.tsx b/src/renderer/Core/Search/SearchResultList.tsx similarity index 100% rename from src/renderer/Search/SearchResultList.tsx rename to src/renderer/Core/Search/SearchResultList.tsx diff --git a/src/renderer/Search/SearchResultListItem.tsx b/src/renderer/Core/Search/SearchResultListItem.tsx similarity index 100% rename from src/renderer/Search/SearchResultListItem.tsx rename to src/renderer/Core/Search/SearchResultListItem.tsx diff --git a/src/renderer/Search/index.ts b/src/renderer/Core/Search/index.ts similarity index 100% rename from src/renderer/Search/index.ts rename to src/renderer/Core/Search/index.ts diff --git a/src/renderer/Settings/Navigation.tsx b/src/renderer/Core/Settings/Navigation.tsx similarity index 100% rename from src/renderer/Settings/Navigation.tsx rename to src/renderer/Core/Settings/Navigation.tsx diff --git a/src/renderer/Settings/Pages/About.tsx b/src/renderer/Core/Settings/Pages/About.tsx similarity index 100% rename from src/renderer/Settings/Pages/About.tsx rename to src/renderer/Core/Settings/Pages/About.tsx diff --git a/src/renderer/Settings/Pages/Appearance.tsx b/src/renderer/Core/Settings/Pages/Appearance.tsx similarity index 100% rename from src/renderer/Settings/Pages/Appearance.tsx rename to src/renderer/Core/Settings/Pages/Appearance.tsx diff --git a/src/renderer/Settings/Pages/Debug.tsx b/src/renderer/Core/Settings/Pages/Debug.tsx similarity index 100% rename from src/renderer/Settings/Pages/Debug.tsx rename to src/renderer/Core/Settings/Pages/Debug.tsx diff --git a/src/renderer/Settings/Pages/ExtensionSettings.tsx b/src/renderer/Core/Settings/Pages/ExtensionSettings.tsx similarity index 56% rename from src/renderer/Settings/Pages/ExtensionSettings.tsx rename to src/renderer/Core/Settings/Pages/ExtensionSettings.tsx index fa5b9f2d..4326714d 100644 --- a/src/renderer/Settings/Pages/ExtensionSettings.tsx +++ b/src/renderer/Core/Settings/Pages/ExtensionSettings.tsx @@ -1,6 +1,5 @@ -import type { ReactElement } from "react"; import { useTranslation } from "react-i18next"; -import { ApplicationSearchSettings, DeeplTranslatorSettings } from "../../Extensions"; +import { getExtension } from "../../../Extensions"; type ExtensionSettingsProps = { extensionId: string; @@ -9,13 +8,10 @@ type ExtensionSettingsProps = { export const ExtensionSettings = ({ extensionId }: ExtensionSettingsProps) => { const { t } = useTranslation(); - const map: Record = { - ApplicationSearch: , - DeeplTranslator: , - }; + const result = getExtension(extensionId); return ( - map[extensionId] ?? ( + result?.settings ?? (
{t("settings.extensions.noSettingsAvailable")}
diff --git a/src/renderer/Settings/Pages/Extensions.tsx b/src/renderer/Core/Settings/Pages/Extensions.tsx similarity index 100% rename from src/renderer/Settings/Pages/Extensions.tsx rename to src/renderer/Core/Settings/Pages/Extensions.tsx diff --git a/src/renderer/Settings/Pages/General.tsx b/src/renderer/Core/Settings/Pages/General.tsx similarity index 100% rename from src/renderer/Settings/Pages/General.tsx rename to src/renderer/Core/Settings/Pages/General.tsx diff --git a/src/renderer/Settings/Pages/SearchEngine.tsx b/src/renderer/Core/Settings/Pages/SearchEngine.tsx similarity index 100% rename from src/renderer/Settings/Pages/SearchEngine.tsx rename to src/renderer/Core/Settings/Pages/SearchEngine.tsx diff --git a/src/renderer/Settings/Pages/ThemeOption.tsx b/src/renderer/Core/Settings/Pages/ThemeOption.tsx similarity index 100% rename from src/renderer/Settings/Pages/ThemeOption.tsx rename to src/renderer/Core/Settings/Pages/ThemeOption.tsx diff --git a/src/renderer/Settings/Pages/Window.tsx b/src/renderer/Core/Settings/Pages/Window.tsx similarity index 100% rename from src/renderer/Settings/Pages/Window.tsx rename to src/renderer/Core/Settings/Pages/Window.tsx diff --git a/src/renderer/Settings/Pages/index.tsx b/src/renderer/Core/Settings/Pages/index.tsx similarity index 100% rename from src/renderer/Settings/Pages/index.tsx rename to src/renderer/Core/Settings/Pages/index.tsx diff --git a/src/renderer/Settings/Section.tsx b/src/renderer/Core/Settings/Section.tsx similarity index 100% rename from src/renderer/Settings/Section.tsx rename to src/renderer/Core/Settings/Section.tsx diff --git a/src/renderer/Settings/SectionList.tsx b/src/renderer/Core/Settings/SectionList.tsx similarity index 100% rename from src/renderer/Settings/SectionList.tsx rename to src/renderer/Core/Settings/SectionList.tsx diff --git a/src/renderer/Settings/Settings.tsx b/src/renderer/Core/Settings/Settings.tsx similarity index 100% rename from src/renderer/Settings/Settings.tsx rename to src/renderer/Core/Settings/Settings.tsx diff --git a/src/renderer/Settings/SettingsHeader.tsx b/src/renderer/Core/Settings/SettingsHeader.tsx similarity index 100% rename from src/renderer/Settings/SettingsHeader.tsx rename to src/renderer/Core/Settings/SettingsHeader.tsx diff --git a/src/renderer/Settings/index.ts b/src/renderer/Core/Settings/index.ts similarity index 100% rename from src/renderer/Settings/index.ts rename to src/renderer/Core/Settings/index.ts diff --git a/src/renderer/Settings/isType.ts b/src/renderer/Core/Settings/isType.ts similarity index 100% rename from src/renderer/Settings/isType.ts rename to src/renderer/Core/Settings/isType.ts diff --git a/src/renderer/Theme/ThemeMap.ts b/src/renderer/Core/Theme/ThemeMap.ts similarity index 100% rename from src/renderer/Theme/ThemeMap.ts rename to src/renderer/Core/Theme/ThemeMap.ts diff --git a/src/renderer/Theme/ThemeName.ts b/src/renderer/Core/Theme/ThemeName.ts similarity index 100% rename from src/renderer/Theme/ThemeName.ts rename to src/renderer/Core/Theme/ThemeName.ts diff --git a/src/renderer/Theme/getAvailableThemes.ts b/src/renderer/Core/Theme/getAvailableThemes.ts similarity index 100% rename from src/renderer/Theme/getAvailableThemes.ts rename to src/renderer/Core/Theme/getAvailableThemes.ts diff --git a/src/renderer/Theme/getTheme.ts b/src/renderer/Core/Theme/getTheme.ts similarity index 100% rename from src/renderer/Theme/getTheme.ts rename to src/renderer/Core/Theme/getTheme.ts diff --git a/src/renderer/Theme/index.ts b/src/renderer/Core/Theme/index.ts similarity index 100% rename from src/renderer/Theme/index.ts rename to src/renderer/Core/Theme/index.ts diff --git a/src/renderer/Theme/themes.ts b/src/renderer/Core/Theme/themes.ts similarity index 100% rename from src/renderer/Theme/themes.ts rename to src/renderer/Core/Theme/themes.ts diff --git a/src/renderer/ThemeContext.tsx b/src/renderer/Core/ThemeContext.tsx similarity index 100% rename from src/renderer/ThemeContext.tsx rename to src/renderer/Core/ThemeContext.tsx diff --git a/src/renderer/useAppCssProperties.ts b/src/renderer/Core/useAppCssProperties.ts similarity index 100% rename from src/renderer/useAppCssProperties.ts rename to src/renderer/Core/useAppCssProperties.ts diff --git a/src/renderer/vite-env.d.ts b/src/renderer/Core/vite-env.d.ts similarity index 100% rename from src/renderer/vite-env.d.ts rename to src/renderer/Core/vite-env.d.ts diff --git a/src/renderer/window.d.ts b/src/renderer/Core/window.d.ts similarity index 100% rename from src/renderer/window.d.ts rename to src/renderer/Core/window.d.ts diff --git a/src/renderer/Extension.tsx b/src/renderer/Extension.tsx deleted file mode 100644 index dfa7cb52..00000000 --- a/src/renderer/Extension.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import type { ReactElement } from "react"; -import { useNavigate, useParams } from "react-router"; -import type { ExtensionProps } from "./ExtensionProps"; -import { DeeplTranslator } from "./Extensions"; -import { useContextBridge } from "./Hooks"; - -export const Extension = () => { - const { contextBridge } = useContextBridge(); - const navigate = useNavigate(); - const extensionId = useParams().extensionId; - - if (!extensionId) { - return <>Missing extension id; - } - - const props: ExtensionProps = { - contextBridge, - goBack: () => navigate({ pathname: "/" }), - }; - - const extensions: Record = { - DeeplTranslator: , - }; - - return extensions[extensionId]; -}; diff --git a/src/renderer/Extensions/ApplicationSearch/ApplicationSearchSettings.tsx b/src/renderer/Extensions/ApplicationSearch/ApplicationSearchSettings.tsx index 7ee314cb..9598adca 100644 --- a/src/renderer/Extensions/ApplicationSearch/ApplicationSearchSettings.tsx +++ b/src/renderer/Extensions/ApplicationSearch/ApplicationSearchSettings.tsx @@ -1,6 +1,6 @@ +import { useContextBridge } from "@Core/Hooks"; import type { OperatingSystem } from "@common/Core"; import type { ReactElement } from "react"; -import { useContextBridge } from "../../Hooks"; import { MacOsSettings } from "./MacOs"; import { WindowsSettings } from "./Windows"; diff --git a/src/renderer/Extensions/ApplicationSearch/MacOs/MacOsSettings.tsx b/src/renderer/Extensions/ApplicationSearch/MacOs/MacOsSettings.tsx index f340208f..f40dbaaa 100644 --- a/src/renderer/Extensions/ApplicationSearch/MacOs/MacOsSettings.tsx +++ b/src/renderer/Extensions/ApplicationSearch/MacOs/MacOsSettings.tsx @@ -1,9 +1,9 @@ +import { useContextBridge, useExtensionSetting } from "@Core/Hooks"; +import { Section } from "@Core/Settings/Section"; +import { SectionList } from "@Core/Settings/SectionList"; import { Button, Field, Input, Tooltip } from "@fluentui/react-components"; import { AddRegular, DismissRegular, FolderRegular } from "@fluentui/react-icons"; import { useState } from "react"; -import { useContextBridge, useExtensionSetting } from "../../../Hooks"; -import { Section } from "../../../Settings/Section"; -import { SectionList } from "../../../Settings/SectionList"; export const MacOsSettings = () => { const { contextBridge } = useContextBridge(); diff --git a/src/renderer/Extensions/DeeplTranslator/DeeplTranslator.tsx b/src/renderer/Extensions/DeeplTranslator/DeeplTranslator.tsx index 925a4bca..a4c408fd 100644 --- a/src/renderer/Extensions/DeeplTranslator/DeeplTranslator.tsx +++ b/src/renderer/Extensions/DeeplTranslator/DeeplTranslator.tsx @@ -1,10 +1,10 @@ +import { BaseLayout } from "@Core/BaseLayout"; +import type { ExtensionProps } from "@Core/ExtensionProps"; +import { Header } from "@Core/Header"; +import { useExtensionSetting } from "@Core/Hooks"; import { Button, Text } from "@fluentui/react-components"; import { ArrowLeftFilled, CopyRegular } from "@fluentui/react-icons"; import { useState } from "react"; -import { BaseLayout } from "../../BaseLayout"; -import type { ExtensionProps } from "../../ExtensionProps"; -import { Header } from "../../Header"; -import { useExtensionSetting } from "../../Hooks"; import { MissingApiKey } from "./MissingApiKey"; import { Translator } from "./Translator"; diff --git a/src/renderer/Extensions/DeeplTranslator/DeeplTranslatorSettings.tsx b/src/renderer/Extensions/DeeplTranslator/DeeplTranslatorSettings.tsx index 53ba55f5..44ac3a90 100644 --- a/src/renderer/Extensions/DeeplTranslator/DeeplTranslatorSettings.tsx +++ b/src/renderer/Extensions/DeeplTranslator/DeeplTranslatorSettings.tsx @@ -1,7 +1,7 @@ +import { useContextBridge, useExtensionSetting } from "@Core/Hooks"; +import { Section } from "@Core/Settings/Section"; +import { SectionList } from "@Core/Settings/SectionList"; import { Dropdown, Field, Input, Option } from "@fluentui/react-components"; -import { useContextBridge, useExtensionSetting } from "../../Hooks"; -import { Section } from "../../Settings/Section"; -import { SectionList } from "../../Settings/SectionList"; import { sourceLanguages } from "./sourceLanguages"; import { targetLanguages } from "./targetLanguages"; diff --git a/src/renderer/Extensions/DeeplTranslator/Translator.tsx b/src/renderer/Extensions/DeeplTranslator/Translator.tsx index d01b85e1..94541c0f 100644 --- a/src/renderer/Extensions/DeeplTranslator/Translator.tsx +++ b/src/renderer/Extensions/DeeplTranslator/Translator.tsx @@ -1,7 +1,7 @@ +import { useExtensionSetting } from "@Core/Hooks"; import type { ContextBridge } from "@common/Core"; import { Dropdown, Option, ProgressBar, Textarea } from "@fluentui/react-components"; import { useEffect, useState } from "react"; -import { useExtensionSetting } from "../../Hooks"; import { sourceLanguages } from "./sourceLanguages"; import { targetLanguages } from "./targetLanguages"; diff --git a/src/renderer/Extensions/index.ts b/src/renderer/Extensions/index.ts deleted file mode 100644 index 4ba2c618..00000000 --- a/src/renderer/Extensions/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./ApplicationSearch"; -export * from "./DeeplTranslator"; diff --git a/src/renderer/Extensions/index.tsx b/src/renderer/Extensions/index.tsx new file mode 100644 index 00000000..b6f1d7c2 --- /dev/null +++ b/src/renderer/Extensions/index.tsx @@ -0,0 +1,25 @@ +import { useExtensionProps } from "@Core/Hooks"; +import type { ReactElement } from "react"; +import { ApplicationSearchSettings } from "./ApplicationSearch"; +import { DeeplTranslator, DeeplTranslatorSettings } from "./DeeplTranslator"; + +type ExtensionReactElements = { + extension?: ReactElement; + settings?: ReactElement; +}; + +export const getExtension = (extensionId: string): ExtensionReactElements | undefined => { + const props = useExtensionProps(); + + const extensions: Record = { + ApplicationSearch: { + settings: , + }, + DeeplTranslator: { + extension: , + settings: , + }, + }; + + return extensions[extensionId]; +}; diff --git a/src/renderer/index.tsx b/src/renderer/index.tsx index e84076a3..8d0d523f 100644 --- a/src/renderer/index.tsx +++ b/src/renderer/index.tsx @@ -1,6 +1,6 @@ +import { App } from "@Core/App"; import { createRoot } from "react-dom/client"; import { HashRouter } from "react-router-dom"; -import { App } from "./App"; document.addEventListener("DOMContentLoaded", () => { createRoot(document.getElementById("react-app") as HTMLDivElement).render( diff --git a/tsconfig.renderer.json b/tsconfig.renderer.json index 4e017cc5..09e8ff4f 100644 --- a/tsconfig.renderer.json +++ b/tsconfig.renderer.json @@ -17,7 +17,8 @@ "jsx": "react-jsx", "rootDir": "./src", "paths": { - "@common/*": ["./src/common/*"] + "@common/*": ["./src/common/*"], + "@Core/*": ["./src/renderer/Core/*"] } } } diff --git a/vite.config.mts b/vite.config.mts index c4c90d7e..e882485c 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -1,6 +1,6 @@ import react from "@vitejs/plugin-react"; import { join } from "path"; -import { defineConfig, type AliasOptions } from "vite"; +import { defineConfig } from "vite"; import electron from "vite-plugin-electron"; import renderer from "vite-plugin-electron-renderer"; import pkg from "./package.json"; @@ -10,16 +10,14 @@ export default defineConfig(({ command }) => { const isBuild = command === "build"; const sourcemap = isServe ? "inline" : undefined; - const resolve: { alias: AliasOptions } = { - alias: { - "@common": join(__dirname, "src", "common"), - "@Core": join(__dirname, "src", "main", "Core"), - }, - }; - return { root: "src/renderer", - resolve, + resolve: { + alias: { + "@common": join(__dirname, "src", "common"), + "@Core": join(__dirname, "src", "renderer", "Core"), + }, + }, build: { outDir: "../../dist-renderer", emptyOutDir: true, @@ -34,7 +32,12 @@ export default defineConfig(({ command }) => { options.startup(); }, vite: { - resolve, + resolve: { + alias: { + "@common": join(__dirname, "src", "common"), + "@Core": join(__dirname, "src", "main", "Core"), + }, + }, build: { sourcemap, minify: isBuild, @@ -54,7 +57,11 @@ export default defineConfig(({ command }) => { options.reload(); }, vite: { - resolve, + resolve: { + alias: { + "@common": join(__dirname, "src", "common"), + }, + }, build: { sourcemap, minify: isBuild,