epic-ux-design #1

Open
sepehr wants to merge 26 commits from epic-ux-design into main
Showing only changes of commit 9a58a729d2 - Show all commits

View File

@@ -57,16 +57,6 @@ export function AdminSettingsForm({ config }: { config: Record<string, string> }
const [isLoadingTagsModels, setIsLoadingTagsModels] = useState(false) const [isLoadingTagsModels, setIsLoadingTagsModels] = useState(false)
const [isLoadingEmbeddingsModels, setIsLoadingEmbeddingsModels] = useState(false) const [isLoadingEmbeddingsModels, setIsLoadingEmbeddingsModels] = useState(false)
// Sync state with config
useEffect(() => {
setAllowRegister(config.ALLOW_REGISTRATION !== 'false')
setSmtpSecure(config.SMTP_SECURE === 'true')
setSmtpIgnoreCert(config.SMTP_IGNORE_CERT === 'true')
setTagsProvider((config.AI_PROVIDER_TAGS as AIProvider) || 'ollama')
setEmbeddingsProvider((config.AI_PROVIDER_EMBEDDING as AIProvider) || 'ollama')
setSelectedTagsModel(config.AI_MODEL_TAGS || '')
setSelectedEmbeddingModel(config.AI_MODEL_EMBEDDING || '')
}, [config])
// Fetch Ollama models // Fetch Ollama models
const fetchOllamaModels = useCallback(async (type: 'tags' | 'embeddings', url: string) => { const fetchOllamaModels = useCallback(async (type: 'tags' | 'embeddings', url: string) => {
@@ -287,7 +277,16 @@ export function AdminSettingsForm({ config }: { config: Record<string, string> }
id="AI_PROVIDER_TAGS" id="AI_PROVIDER_TAGS"
name="AI_PROVIDER_TAGS" name="AI_PROVIDER_TAGS"
value={tagsProvider} value={tagsProvider}
onChange={(e) => setTagsProvider(e.target.value as AIProvider)} onChange={(e) => {
const newProvider = e.target.value as AIProvider
setTagsProvider(newProvider)
const defaultModels: Record<string, string> = {
ollama: '',
openai: MODELS_2026.openai.tags[0],
custom: MODELS_2026.custom.tags[0],
}
setSelectedTagsModel(defaultModels[newProvider] || '')
}}
className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2" className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
> >
<option value="ollama">{t('admin.ai.providerOllamaOption')}</option> <option value="ollama">{t('admin.ai.providerOllamaOption')}</option>
@@ -417,7 +416,16 @@ export function AdminSettingsForm({ config }: { config: Record<string, string> }
id="AI_PROVIDER_EMBEDDING" id="AI_PROVIDER_EMBEDDING"
name="AI_PROVIDER_EMBEDDING" name="AI_PROVIDER_EMBEDDING"
value={embeddingsProvider} value={embeddingsProvider}
onChange={(e) => setEmbeddingsProvider(e.target.value as AIProvider)} onChange={(e) => {
const newProvider = e.target.value as AIProvider
setEmbeddingsProvider(newProvider)
const defaultModels: Record<string, string> = {
ollama: '',
openai: MODELS_2026.openai.embeddings[0],
custom: MODELS_2026.custom.embeddings[0],
}
setSelectedEmbeddingModel(defaultModels[newProvider] || '')
}}
className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2" className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
> >
<option value="ollama">{t('admin.ai.providerOllamaOption')}</option> <option value="ollama">{t('admin.ai.providerOllamaOption')}</option>