diff --git a/src/background/index.mjs b/src/background/index.mjs index 79b4f0c0d..a91b13e79 100644 --- a/src/background/index.mjs +++ b/src/background/index.mjs @@ -546,7 +546,7 @@ async function executeApi( console.debug('[background] Skipping a superseded direct ChatGPT Web session request.') return } - await generateAnswersWithChatgptWebApi(port, session.question, session, accessToken) + await generateAnswersWithChatgptWebApi(port, session.question, session, accessToken, config) } } else if (isUsingClaudeWebModel(session)) { console.debug('[background] Using Claude Web Model') @@ -656,7 +656,7 @@ Browser.runtime.onMessage.addListener(async (message, sender) => { break case 'OPEN_CHAT_WINDOW': { console.log('[background] Processing OPEN_CHAT_WINDOW message') - const config = await getUserConfig() + const config = await getUserConfig({ fresh: true }) const url = Browser.runtime.getURL('IndependentPanel.html') const tabs = await Browser.tabs.query({ url: url, windowType: 'popup' }) if (!config.alwaysCreateNewConversationWindow && tabs.length > 0) { @@ -675,7 +675,7 @@ Browser.runtime.onMessage.addListener(async (message, sender) => { } case 'REFRESH_MENU': console.log('[background] Processing REFRESH_MENU message') - refreshMenu() + await refreshMenu() break case 'PIN_TAB': { console.log('[background] Processing PIN_TAB message:', message.data) @@ -1050,7 +1050,8 @@ try { try { refreshMenu() - console.log('[background] Menu refreshed successfully.') + .then(() => console.log('[background] Menu refreshed successfully.')) + .catch((error) => console.error('[background] Error refreshing menu:', error)) } catch (error) { console.error('[background] Error refreshing menu:', error) } diff --git a/src/background/menus.mjs b/src/background/menus.mjs index d3a61ee1e..d39c11709 100644 --- a/src/background/menus.mjs +++ b/src/background/menus.mjs @@ -110,12 +110,11 @@ const onClickMenu = (info, tab) => { export function refreshMenu() { if (Browser.contextMenus.onClicked.hasListener(onClickMenu)) Browser.contextMenus.onClicked.removeListener(onClickMenu) - Browser.contextMenus.removeAll().then(async () => { - if ((await getUserConfig()).hideContextMenu) return + return Browser.contextMenus.removeAll().then(async () => { + const config = await getUserConfig({ fresh: true }) + if (config.hideContextMenu) return - await getPreferredLanguageKey().then((lang) => { - changeLanguage(lang) - }) + await changeLanguage(await getPreferredLanguageKey(config)) Browser.contextMenus.create({ id: menuId, title: 'ChatGPTBox', diff --git a/src/components/ConversationCard/index.jsx b/src/components/ConversationCard/index.jsx index 7458a0d89..e9c2be346 100644 --- a/src/components/ConversationCard/index.jsx +++ b/src/components/ConversationCard/index.jsx @@ -384,7 +384,7 @@ function ConversationCard(props) { } foregroundPortsRef.current.add(fakePort) try { - const bingToken = (await getUserConfig()).bingAccessToken + const bingToken = (await getUserConfig({ fresh: true })).bingAccessToken if ( disposedRef.current || disconnected || @@ -445,9 +445,13 @@ function ConversationCard(props) { } const closeChatsEscListener = async (e) => { if (e.key !== 'Escape') return - const { allowEscToCloseAll } = await getUserConfig() - if (disposedRef.current || !allowEscToCloseAll) return - closeChatsMessageListener({ type: 'CLOSE_CHATS' }) + try { + const { allowEscToCloseAll } = await getUserConfig({ fresh: true }) + if (disposedRef.current || !allowEscToCloseAll) return + closeChatsMessageListener({ type: 'CLOSE_CHATS' }) + } catch (error) { + console.warn('[ConversationCard] Failed to handle Escape:', error) + } } if (props.closeable) { diff --git a/src/components/WebJumpBackNotification/index.jsx b/src/components/WebJumpBackNotification/index.jsx index cece185da..527d07246 100644 --- a/src/components/WebJumpBackNotification/index.jsx +++ b/src/components/WebJumpBackNotification/index.jsx @@ -56,12 +56,16 @@ const WebJumpBackNotification = (props) => {