From 4adfc8fbc19746579e78210955af62441ddccb04 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Thu, 6 Nov 2025 10:50:21 +0900 Subject: [PATCH] [Refactor] Export config hooks from index.js --- .../config_page_setter/ui_config_setter.js | 41 +------------------ src-ui/logics/configs/index.js | 16 ++++++++ vite.config.js | 2 +- 3 files changed, 19 insertions(+), 40 deletions(-) create mode 100644 src-ui/logics/configs/index.js diff --git a/src-ui/logics/configs/config_page_setter/ui_config_setter.js b/src-ui/logics/configs/config_page_setter/ui_config_setter.js index 18163218..3aa90274 100644 --- a/src-ui/logics/configs/config_page_setter/ui_config_setter.js +++ b/src-ui/logics/configs/config_page_setter/ui_config_setter.js @@ -595,48 +595,11 @@ const buildCategoryApiFromSettings = (settings, settingsArray, Category, extraFu return { ...api, ...extraFunctions }; }; -const createCategoryHook = (Category) => { +export const createCategoryHook = (Category) => { return () => { const { settings } = useSettingsLogics(SETTINGS_ARRAY, Category); const extraFunctions = useConfigFunctions(Category); const autoApi = buildCategoryApiFromSettings(settings, SETTINGS_ARRAY, Category, extraFunctions); return { ...autoApi }; }; -}; - - - -// --- 自動エクスポート: SETTINGS_ARRAY に含まれるユニークな Category ごとに use を作って export --- -// 例: Category === "Appearance" -> export const useAppearance = createCategoryHook("Appearance"); - -// const uniqueCategories = Array.from(new Set(SETTINGS_ARRAY.map((s) => s.Category))); - -// 動的に named export を作る(静的解析を壊さないために明示的に定義) -/* eslint-disable import/prefer-default-export */ -export const useAppearance = createCategoryHook("Appearance"); -export const useDevice = createCategoryHook("Device"); -export const useTranslation = createCategoryHook("Translation"); -export const useTranscription = createCategoryHook("Transcription"); -export const useVr = createCategoryHook("Vr"); -export const useOthers = createCategoryHook("Others"); -export const useAdvancedSettings = createCategoryHook("AdvancedSettings"); - -// Exceptional exports that are not part of SETTINGS_ARRAY or have custom logic. -export { useHotkeys } from "./hotkeys/useHotkeys.js"; -export { useSupporters } from "./supporters/useSupporters.js"; -export { usePlugins } from "./plugins/usePlugins.js"; - -export { useSettingBoxScrollPosition } from "./_aux/useSettingBoxScrollPosition.js"; - - -// If you later add other categories, you can either manually add: -// export const useDevice = createCategoryHook("Device"); -// or uncomment the code below to auto-attach to module.exports (less ideal for tree-shaking). -// -// Auto-attach (not recommended for tree-shaking in bundlers): -// uniqueCategories.forEach((Category) => { -// const hookName = `use${Category}`; -// module.exports[hookName] = createCategoryHook(Category); -// }); - -/* eslint-enable import/prefer-default-export */ +}; \ No newline at end of file diff --git a/src-ui/logics/configs/index.js b/src-ui/logics/configs/index.js new file mode 100644 index 00000000..51e74c96 --- /dev/null +++ b/src-ui/logics/configs/index.js @@ -0,0 +1,16 @@ +import { createCategoryHook } from "./config_page_setter/ui_config_setter.js"; + +export const useAppearance = createCategoryHook("Appearance"); +export const useDevice = createCategoryHook("Device"); +export const useTranslation = createCategoryHook("Translation"); +export const useTranscription = createCategoryHook("Transcription"); +export const useVr = createCategoryHook("Vr"); +export const useOthers = createCategoryHook("Others"); +export const useAdvancedSettings = createCategoryHook("AdvancedSettings"); + +// Exceptional exports that are not part of SETTINGS_ARRAY or have custom logic. +export { useHotkeys } from "./config_page_setter/hotkeys/useHotkeys.js"; +export { useSupporters } from "./config_page_setter/supporters/useSupporters.js"; +export { usePlugins } from "./config_page_setter/plugins/usePlugins.js"; + +export { useSettingBoxScrollPosition } from "./config_page_setter/_aux/useSettingBoxScrollPosition.js"; \ No newline at end of file diff --git a/vite.config.js b/vite.config.js index dc1d6fa2..43a34840 100644 --- a/vite.config.js +++ b/vite.config.js @@ -70,7 +70,7 @@ export default defineConfig(async () => { "@logics": path.resolve(__dirname, "src-ui/logics"), "@logics_common": path.resolve(__dirname, "src-ui/logics/common"), "@logics_main": path.resolve(__dirname, "src-ui/logics/main"), - "@logics_configs": path.resolve(__dirname, "src-ui/logics/configs/config_page_setter/ui_config_setter.js"), + "@logics_configs": path.resolve(__dirname, "src-ui/logics/configs"), "@setting_box": path.resolve(__dirname, "src-ui/views/app/config_page/setting_section/setting_box/index.js"), "@common_components": path.resolve(__dirname, "src-ui/views/common_components/index.js"),