From b0b68233aa391f7eb604a6e8e1471387d2ddbc9e Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Sun, 30 Mar 2025 04:18:54 +0900 Subject: [PATCH] [Update] Plugins: Send all logics to the plugins when it's registered. --- src-ui/logics/configs/plugins/usePlugins.js | 6 ++++-- src-ui/plugins/dev_plugin_subtitles/index.jsx | 21 +++---------------- .../dev_plugin_subtitles/store/store.js | 10 --------- .../_controllers/SubtitlesController.jsx | 4 ++-- .../_logics/useSubtitles.jsx | 19 ++--------------- 5 files changed, 11 insertions(+), 49 deletions(-) diff --git a/src-ui/logics/configs/plugins/usePlugins.js b/src-ui/logics/configs/plugins/usePlugins.js index a2b7857f..d03e88d0 100644 --- a/src-ui/logics/configs/plugins/usePlugins.js +++ b/src-ui/logics/configs/plugins/usePlugins.js @@ -16,7 +16,9 @@ import JSZip from "jszip"; import { useFetch } from "@logics_common"; import { useSoftwareVersion } from "@logics_configs"; -import * as logic_configs from "@logics_configs"; +import * as logics_configs from "@logics_configs"; +import * as logics_main from "@logics_main"; +import * as logics_common from "@logics_common"; // PLUGIN_LIST_URL は中央リポジトリにある、各プラグインの plugin_info.json への URL の配列を保持する JSON の URL @@ -51,7 +53,7 @@ export const usePlugins = () => { }); }, createAtomWithHook: (...args) => createAtomWithHook(...args), - logic_configs: logic_configs, + logics: { ...logics_common, ...logics_configs, ...logics_main } }; return plugin_context; } diff --git a/src-ui/plugins/dev_plugin_subtitles/index.jsx b/src-ui/plugins/dev_plugin_subtitles/index.jsx index 2312d9d9..56a3b91f 100644 --- a/src-ui/plugins/dev_plugin_subtitles/index.jsx +++ b/src-ui/plugins/dev_plugin_subtitles/index.jsx @@ -4,13 +4,11 @@ import { SubtitlesController } from "./subtitle_system_container/_controllers/Su export const init = (plugin_context) => { initStore(plugin_context.createAtomWithHook); - const { logic_configs } = plugin_context; - - loadPluginCSS("./main.css"); + const { logics } = plugin_context; const EntryComponents = () => { return ( - + @@ -21,17 +19,4 @@ export const init = (plugin_context) => { plugin_context.registerComponent(EntryComponents); }; -export default init; - - -// CSS を動的に読み込む関数 -const loadPluginCSS = (cssUrl) => { - if (typeof document === "undefined") return; - // すでに読み込まれているかチェック - if (document.getElementById("plugin-main-css")) return; - const link = document.createElement("link"); - link.rel = "stylesheet"; - link.href = cssUrl; - link.id = "plugin-main-css"; - document.head.appendChild(link); -}; \ No newline at end of file +export default init; \ No newline at end of file diff --git a/src-ui/plugins/dev_plugin_subtitles/store/store.js b/src-ui/plugins/dev_plugin_subtitles/store/store.js index 40d80bb4..6f338573 100644 --- a/src-ui/plugins/dev_plugin_subtitles/store/store.js +++ b/src-ui/plugins/dev_plugin_subtitles/store/store.js @@ -2,16 +2,6 @@ const store_hooks = {}; export const initStore = (createAtomWithHook) => { Object.assign(store_hooks, { - // useStore_CountPluginState: createAtomWithHook( - // { count: 10 }, - // "CountPluginState" - // ).useHook, - - // useStore_AnotherState: createAtomWithHook( - // { value: "initial" }, - // "AnotherState" - // ).useHook, - useStore_IsSubtitlePlaying: createAtomWithHook(false, "IsSubtitlePlaying", { is_state_ok: true }).useHook, useStore_SubtitlePlaybackMode: createAtomWithHook("relative", "SubtitlePlaybackMode", { is_state_ok: true }).useHook, useStore_SubtitleAbsoluteTargetTime: createAtomWithHook({ diff --git a/src-ui/plugins/dev_plugin_subtitles/subtitle_system_container/_controllers/SubtitlesController.jsx b/src-ui/plugins/dev_plugin_subtitles/subtitle_system_container/_controllers/SubtitlesController.jsx index 53380205..d58be5aa 100644 --- a/src-ui/plugins/dev_plugin_subtitles/subtitle_system_container/_controllers/SubtitlesController.jsx +++ b/src-ui/plugins/dev_plugin_subtitles/subtitle_system_container/_controllers/SubtitlesController.jsx @@ -4,8 +4,8 @@ import { useSubtitles } from "../_logics/useSubtitles"; import { secToDayTime } from "../_subtitles_utils" import { useEffect } from "react"; export const SubtitlesController = () => { - const logic_configs = useStoreContext(); - const { sendTextToOverlay } = logic_configs.useSendTextToOverlay(); + const { useSendTextToOverlay } = useStoreContext(); + const { sendTextToOverlay } = useSendTextToOverlay(); const { currentIsSubtitlePlaying, diff --git a/src-ui/plugins/dev_plugin_subtitles/subtitle_system_container/_logics/useSubtitles.jsx b/src-ui/plugins/dev_plugin_subtitles/subtitle_system_container/_logics/useSubtitles.jsx index fe0b6e3c..80585abf 100644 --- a/src-ui/plugins/dev_plugin_subtitles/subtitle_system_container/_logics/useSubtitles.jsx +++ b/src-ui/plugins/dev_plugin_subtitles/subtitle_system_container/_logics/useSubtitles.jsx @@ -1,23 +1,8 @@ import { useStore, useStoreContext } from "../../store/store.js"; -// import { useSendTextToOverlay } from "@logics_configs"; -// import { -// useStore_SubtitleFileName, -// useStore_IsSubtitlePlaying, -// useStore_SubtitlePlaybackMode, -// useStore_SubtitleAbsoluteTargetTime, -// useStore_IsCuesScheduled, -// useStore_CountdownAdjustment, -// useStore_EffectiveCountdown, -// useStore_SubtitleCues, - -// useStore_SubtitleTimers, -// useStore_SubtitleCountdownTimerId, -// } from "../../store/store.js"; - export const useSubtitles = () => { - const logic_configs = useStoreContext(); - const { sendTextToOverlay } = logic_configs.useSendTextToOverlay(); + const { useSendTextToOverlay } = useStoreContext(); + const { sendTextToOverlay } = useSendTextToOverlay(); const { currentSubtitleFileName, updateSubtitleFileName } = useStore("useStore_SubtitleFileName"); const { currentIsSubtitlePlaying, updateIsSubtitlePlaying } = useStore("useStore_IsSubtitlePlaying");