-
+ {options && !customModelMode ? (
+ {
+ // 「自定义模型…」逃生口:切回输入框手输任意模型名。
+ if (v === CUSTOM_MODEL_OPTION_VALUE) {
+ setCustomModelMode(true);
+ return;
+ }
+ setValue(v);
+ onValueChange?.(v);
+ if (!loaded) return;
+ setDirty(true);
+ void save(v, true);
+ }}
+ options={[
+ ...(value && !options.some(o => o.value === value) ? [{ value, label: value }] : []),
+ ...options,
+ { value: CUSTOM_MODEL_OPTION_VALUE, label: t('settings.providers.customModelLabel', 'Custom model…') },
+ ]}
+ placeholder={loaded ? placeholder : t('common.loading')}
+ disabled={disabled}
+ ariaLabel={label}
+ style={{ ...inputStyle, flex: mobile ? '1 1 180px' : 1, minWidth: 0, maxWidth: '100%', fontFamily: mono ? 'var(--ol-font-mono)' : 'inherit' }}
+ />
+ ) : (
+
+ )}
+ {options && customModelMode && (
+
+ )}
{defaultValue && !value && loaded && (