diff --git a/servers/nextjs/app/(presentation-generator)/(dashboard)/settings/TextProvider.tsx b/servers/nextjs/app/(presentation-generator)/(dashboard)/settings/TextProvider.tsx index 921458bc..a42c0cb7 100644 --- a/servers/nextjs/app/(presentation-generator)/(dashboard)/settings/TextProvider.tsx +++ b/servers/nextjs/app/(presentation-generator)/(dashboard)/settings/TextProvider.tsx @@ -1,3 +1,4 @@ +import ToolTip from '@/components/ToolTip'; import { Button } from '@/components/ui/button'; import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '@/components/ui/command'; import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; @@ -5,7 +6,7 @@ import { Switch } from '@/components/ui/switch'; import { cn } from '@/lib/utils'; import { LLMConfig } from '@/types/llm_config'; import { LLM_PROVIDERS } from '@/utils/providerConstants'; -import { Check, Loader2, Eye, EyeOff, ChevronUp } from 'lucide-react'; +import { Check, Loader2, Eye, EyeOff, ChevronUp, User, RefreshCw, LogOut } from 'lucide-react'; import React, { useEffect, useMemo, useRef, useState } from 'react' import { toast } from 'sonner'; @@ -222,251 +223,87 @@ const TextProvider = ({ Choosing where text contets come from

-
-
-
- - - - - - - - - - - No provider found. - - {Object.values(LLM_PROVIDERS).map( - (provider, index) => ( - { - onInputChange(value, "LLM"); - setOpenProviderSelect(false); - }} - > - -
-
-
- - {provider.label} - -
- - {provider.description} - -
-
-
- ) - )} -
-
-
-
-
-
- - -
-
-
- {selectedProvider === 'ollama' ? ( - <> - {!useCustomOllamaUrl ? ( - - ) : ( - <> - -
- onApiKeyChange(selectedProvider, e.target.value)} - className="w-full px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors" - placeholder="http://localhost:11434" - /> -
- - - )} - - ) : ( - <> - -
- onApiKeyChange(selectedProvider, e.target.value)} - className="w-full px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors" - placeholder={`Enter your ${llmConfig.LLM} API key`} - /> - -
- - )} - {selectedProvider === 'custom' && ( - onInputChange(e.target.value, 'CUSTOM_LLM_URL')} - className="w-full mt-2 px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors" - placeholder="OpenAI-compatible URL" - /> - )} - - -
- - - {selectedProvider !== 'ollama' && (!modelsChecked || (modelsChecked && availableModels.length === 0)) && ( - - - - )} -
- - - {/* Model Selection - only show if models are available */} - {modelsChecked && availableModels.length > 0 ? ( -
+
+ {selectedProvider === 'codex' && false &&
+
+
- -
- - -
- - - - +
+ + + + + + + + +
+
} + +
+
+
+ + + + + + + + + + + No provider found. + + {Object.values(LLM_PROVIDERS).map( + (provider, index) => ( { - if (currentModelField) { - onInputChange(value, currentModelField); - } - setOpenModelSelect(false); + onInputChange(value, "LLM"); + setOpenProviderSelect(false); }} >
- - {model} + + {provider.label}
+ + {provider.description} +
- ))} - - - - - + ) + )} + + + + + +
+ + +
+
+
+ {selectedProvider === 'ollama' ? ( + <> + {!useCustomOllamaUrl ? ( + + ) : ( + <> + +
+ onApiKeyChange(selectedProvider, e.target.value)} + className="w-full px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors" + placeholder="http://localhost:11434" + /> +
+ + + )} + + ) : selectedProvider === 'codex' ? + <> + + + : ( + <> + +
+ onApiKeyChange(selectedProvider, e.target.value)} + className="w-full px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors" + placeholder={`Enter your ${llmConfig.LLM} API key`} + /> + +
+ + )} + {selectedProvider === 'custom' && ( + onInputChange(e.target.value, 'CUSTOM_LLM_URL')} + className="w-full mt-2 px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors" + placeholder="OpenAI-compatible URL" + /> + )} + + +
+ + + {selectedProvider !== 'ollama' && selectedProvider !== 'codex' && (!modelsChecked || (modelsChecked && availableModels.length === 0)) && ( + + + + )} +
+ + + {/* Model Selection - only show if models are available */} + {modelsChecked && availableModels.length > 0 ? ( +
+
+ +
+ + + + + + + + + No model found. + + {availableModels.map((model, index) => ( + { + if (currentModelField) { + onInputChange(value, currentModelField); + } + setOpenModelSelect(false); + }} + > + +
+
+
+ + {model} + +
+
+
+
+ ))} +
+
+
+
+
+
-
- ) : null} + ) : null} +
{/* Show message if no models found */}