From f50249e74feb2c6877a1f46d8856434577256bb3 Mon Sep 17 00:00:00 2001 From: josc146 Date: Sun, 4 Aug 2024 15:15:48 +0800 Subject: [PATCH] improve b96ba7c0, getUserConfig() in realtime when mounting component --- src/content-script/index.jsx | 22 +++++++++++-------- .../site-adapters/baidu/index.mjs | 2 +- .../site-adapters/bilibili/index.mjs | 2 +- .../site-adapters/github/index.mjs | 4 ++-- .../site-adapters/youtube/index.mjs | 2 +- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/content-script/index.jsx b/src/content-script/index.jsx index 713dd07b..7ef4eab7 100644 --- a/src/content-script/index.jsx +++ b/src/content-script/index.jsx @@ -31,9 +31,10 @@ import NotificationForChatGPTWeb from '../components/NotificationForChatGPTWeb' /** * @param {SiteConfig} siteConfig - * @param {UserConfig} userConfig */ -async function mountComponent(siteConfig, userConfig) { +async function mountComponent(siteConfig) { + const userConfig = await getUserConfig() + if (!userConfig.alwaysFloatingSidebar) { const retry = 10 let oldUrl = location.href @@ -74,17 +75,19 @@ async function mountComponent(siteConfig, userConfig) { e.remove() }) - const position = { - x: window.innerWidth - 300 - Math.floor((20 / 100) * window.innerWidth), - y: window.innerHeight / 2 - 200, - } - const toolbarContainer = createElementAtPosition(position.x, position.y) - toolbarContainer.className = 'chatgptbox-toolbar-container-not-queryable' if (userConfig.alwaysFloatingSidebar && question) { + const position = { + x: window.innerWidth - 300 - Math.floor((20 / 100) * window.innerWidth), + y: window.innerHeight / 2 - 200, + } + const toolbarContainer = createElementAtPosition(position.x, position.y) + toolbarContainer.className = 'chatgptbox-toolbar-container-not-queryable' + let triggered = false if (userConfig.triggerMode === 'always') triggered = true else if (userConfig.triggerMode === 'questionMark' && endsWithQuestionMark(question.trim())) triggered = true + render( { if (location.href !== oldUrl) { oldUrl = location.href - mountComponent(config.youtube, userConfig) + mountComponent(config.youtube) } } window.setInterval(checkUrlChange, 500)