fix(web): skip top warning for no-provider state and remove unused i18n key

The empty state card below already prompts users to install a provider,
so the top warning bar is redundant for the no-provider case. Remove
the unused noProviderInstalled i18n key and replace the lookup map with
a ternary to preserve i18n literal types without assertions.
This commit is contained in:
yyh
2026-03-04 17:39:49 +08:00
parent 97508f8d7b
commit a92fb3244b
4 changed files with 10 additions and 14 deletions

View File

@ -161,7 +161,7 @@ describe('ModelProviderPage', () => {
})
describe('system model config status', () => {
it('should show no-provider warning when no configured providers exist', () => {
it('should not show top warning when no configured providers exist (empty state card handles it)', () => {
mockProviders.splice(0, mockProviders.length, {
provider: 'anthropic',
label: { en_US: 'Anthropic' },
@ -174,7 +174,8 @@ describe('ModelProviderPage', () => {
})
render(<ModelProviderPage searchText="" />)
expect(screen.getByText('common.modelProvider.noProviderInstalled')).toBeInTheDocument()
expect(screen.queryByText('common.modelProvider.noProviderInstalled')).not.toBeInTheDocument()
expect(screen.getByText('common.modelProvider.emptyProviderTitle')).toBeInTheDocument()
})
it('should show none-configured warning when providers exist but no default models set', () => {

View File

@ -23,12 +23,6 @@ import SystemModelSelector from './system-model-selector'
type SystemModelConfigStatus = 'no-provider' | 'none-configured' | 'partially-configured' | 'fully-configured'
const WARNING_TEXT_KEYS = {
'no-provider': 'modelProvider.noProviderInstalled',
'none-configured': 'modelProvider.noneConfigured',
'partially-configured': 'modelProvider.notConfigured',
} as const
type Props = {
searchText: string
}
@ -94,10 +88,13 @@ const ModelProviderPage = ({ searchText }: Props) => {
return 'partially-configured'
return 'fully-configured'
}, [configuredProviders, textGenerationDefaultModel, embeddingsDefaultModel, rerankDefaultModel, speech2textDefaultModel, ttsDefaultModel])
const showWarning = !isDefaultModelLoading && systemModelConfigStatus !== 'fully-configured'
const warningTextKey = systemModelConfigStatus !== 'fully-configured'
? WARNING_TEXT_KEYS[systemModelConfigStatus]
: undefined
const warningTextKey
= systemModelConfigStatus === 'none-configured'
? 'modelProvider.noneConfigured'
: systemModelConfigStatus === 'partially-configured'
? 'modelProvider.notConfigured'
: null
const showWarning = !isDefaultModelLoading && !!warningTextKey
const [filteredConfiguredProviders, filteredNotConfiguredProviders] = useMemo(() => {
const filteredConfiguredProviders = configuredProviders.filter(

View File

@ -390,7 +390,6 @@
"modelProvider.models": "Models",
"modelProvider.modelsNum": "{{num}} Models",
"modelProvider.noModelFound": "No model found for {{model}}",
"modelProvider.noProviderInstalled": "No model provider installed. Install one to configure system models.",
"modelProvider.noneConfigured": "Configure a default system model to run applications",
"modelProvider.notConfigured": "The system model has not yet been fully configured",
"modelProvider.parameters": "PARAMETERS",

View File

@ -390,7 +390,6 @@
"modelProvider.models": "模型列表",
"modelProvider.modelsNum": "{{num}} 个模型",
"modelProvider.noModelFound": "找不到模型 {{model}}",
"modelProvider.noProviderInstalled": "尚未安装模型供应商,请先安装以配置系统模型。",
"modelProvider.noneConfigured": "配置默认系统模型以运行应用",
"modelProvider.notConfigured": "系统模型尚未完全配置",
"modelProvider.parameters": "参数",