feat(model): opt model provider doc url (#475)

This commit is contained in:
Haze
2026-03-13 18:14:54 +08:00
committed by GitHub
Unverified
parent 4485491913
commit f847982632
4 changed files with 96 additions and 21 deletions

View File

@@ -97,6 +97,7 @@ import {
type ProviderAccount,
type ProviderType,
type ProviderTypeInfo,
getProviderDocsUrl,
getProviderIconUrl,
resolveProviderApiKeyForSave,
resolveProviderModelForSave,
@@ -713,7 +714,7 @@ function ProviderContent({
onApiKeyChange,
onConfiguredChange,
}: ProviderContentProps) {
const { t } = useTranslation(['setup', 'settings']);
const { t, i18n } = useTranslation(['setup', 'settings']);
const devModeUnlocked = useSettingsStore((state) => state.devModeUnlocked);
const [showKey, setShowKey] = useState(false);
const [validating, setValidating] = useState(false);
@@ -975,6 +976,7 @@ function ProviderContent({
}, [providerMenuOpen]);
const selectedProviderData = providers.find((p) => p.id === selectedProvider);
const providerDocsUrl = getProviderDocsUrl(selectedProviderData, i18n.language);
const selectedProviderIconUrl = selectedProviderData
? getProviderIconUrl(selectedProviderData.id)
: undefined;
@@ -1139,7 +1141,20 @@ function ProviderContent({
<div className="space-y-6">
{/* Provider selector — dropdown */}
<div className="space-y-2">
<Label>{t('provider.label')}</Label>
<div className="flex items-center justify-between gap-3">
<Label>{t('provider.label')}</Label>
{selectedProvider && providerDocsUrl && (
<a
href={providerDocsUrl}
target="_blank"
rel="noopener noreferrer"
className="text-[13px] text-blue-500 hover:text-blue-600 font-medium inline-flex items-center gap-1"
>
{t('settings:aiProviders.dialog.customDoc')}
<ExternalLink className="h-3 w-3" />
</a>
)}
</div>
<div className="relative" ref={providerMenuRef}>
<button
type="button"