diff --git a/src/components/ConversationCard/index.jsx b/src/components/ConversationCard/index.jsx index c158fa5..0a4ba8a 100644 --- a/src/components/ConversationCard/index.jsx +++ b/src/components/ConversationCard/index.jsx @@ -5,6 +5,7 @@ import InputBox from '../InputBox' import ConversationItem from '../ConversationItem' import { createElementAtPosition, + getApiModesStringArrayFromConfig, isFirefox, isMobile, isSafari, @@ -375,7 +376,7 @@ function ConversationCard(props) { else setSession(newSession) }} > - {config.activeApiModes.map((modelName) => { + {getApiModesStringArrayFromConfig(config, true).map((modelName) => { const desc = modelNameToDesc(modelName, t) if (desc) return ( diff --git a/src/content-script/index.jsx b/src/content-script/index.jsx index 3f20b51..22557cb 100644 --- a/src/content-script/index.jsx +++ b/src/content-script/index.jsx @@ -16,6 +16,7 @@ import { createElementAtPosition, cropText, endsWithQuestionMark, + getApiModesStringArrayFromConfig, getClientPosition, getPossibleElementByQuerySelector, } from '../utils' @@ -354,7 +355,12 @@ async function prepareForForegroundRequests() { const userConfig = await getUserConfig() - if (!chatgptWebModelKeys.some((model) => userConfig.activeApiModes.includes(model))) return + if ( + !chatgptWebModelKeys.some((model) => + getApiModesStringArrayFromConfig(userConfig, true).includes(model), + ) + ) + return if (location.pathname === '/') { const input = document.querySelector('#prompt-textarea') diff --git a/src/popup/sections/ApiModes.jsx b/src/popup/sections/ApiModes.jsx index d6d57f5..a5e8203 100644 --- a/src/popup/sections/ApiModes.jsx +++ b/src/popup/sections/ApiModes.jsx @@ -1,6 +1,6 @@ import { useTranslation } from 'react-i18next' import PropTypes from 'prop-types' -import { apiModeToModelName, modelNameToApiMode, modelNameToDesc } from '../../utils/index.mjs' +import { apiModeToModelName, getApiModesFromConfig, modelNameToDesc } from '../../utils/index.mjs' import { PencilIcon, TrashIcon } from '@primer/octicons-react' import { useState } from 'react' import { @@ -30,20 +30,7 @@ export function ApiModes({ config, updateConfig }) { const [editing, setEditing] = useState(false) const [editingApiMode, setEditingApiMode] = useState(defaultApiMode) const [editingIndex, setEditingIndex] = useState(-1) - - const stringApiModes = config.customApiModes.map(apiModeToModelName) - const originalApiModes = config.activeApiModes - .map((modelName) => { - // 'customModel' is always active - if (stringApiModes.includes(modelName) || modelName === 'customModel') { - return - } - if (modelName === 'azureOpenAi') modelName += '-' + config.azureDeploymentName - if (modelName === 'ollama') modelName += '-' + config.ollamaModelName - return modelNameToApiMode(modelName) - }) - .filter((apiMode) => apiMode) - const apiModes = [...originalApiModes, ...config.customApiModes] + const apiModes = getApiModesFromConfig(config) const editingComponent = (