From 9df41f51f10faa7d7f3b261e2e8556e12e2a5f02 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Nov 2025 09:00:52 +0000 Subject: [PATCH] =?UTF-8?q?Feature:=20Am=C3=A9lioration=20du=20s=C3=A9lect?= =?UTF-8?q?eur=20de=20mod=C3=A8les=20IA=20avec=20recherche?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Amélioration de l'interface de sélection de modèles dans l'assistant IA pour une meilleure expérience utilisateur. Fonctionnalités ajoutées: 1. **Système de recherche intégré** - Remplacement du HTML (lignes 2379-2396) par Combobox * Ajustement taille bouton étoile (h-9 w-9 pour cohérence) Comportement préservé: - Le modèle par défaut est toujours chargé depuis localStorage - Sélection automatique du modèle par défaut au chargement - Possibilité de définir/changer le modèle par défaut avec ★ - Validation et désactivation selon les états de chargement Cette amélioration facilite grandement la navigation dans une longue liste de modèles IA et offre une expérience utilisateur moderne. --- src/pages/Index.tsx | 87 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 67 insertions(+), 20 deletions(-) diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index 4963e83..a8df4ae 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -10,10 +10,12 @@ import { Checkbox } from "@/components/ui/checkbox"; import { Badge } from "@/components/ui/badge"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; +import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; +import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "@/components/ui/command"; import { RichTextEditor } from "@/components/RichTextEditor"; import { PlusCircle, Search, User, LogOut, Settings, ChevronDown, Plus, Archive, Trash2, - Image as ImageIcon, CheckSquare, FileText, Rss, ExternalLink, RefreshCw, Key, Zap, Paperclip, X, Edit, Calendar as CalendarIcon, Tag as TagIcon, MessageSquare, Send + Image as ImageIcon, CheckSquare, FileText, Rss, ExternalLink, RefreshCw, Key, Zap, Paperclip, X, Edit, Calendar as CalendarIcon, Tag as TagIcon, MessageSquare, Send, Check, ChevronsUpDown } from "lucide-react"; import AuthService from "@/services/AuthService"; import AdminService from "@/services/AdminService"; @@ -98,6 +100,7 @@ const Index = () => { const [chatLoading, setChatLoading] = useState(false); const [selectedModel, setSelectedModel] = useState(""); const [defaultModel, setDefaultModel] = useState(""); + const [modelSelectorOpen, setModelSelectorOpen] = useState(false); // Debounce timer for auto-save const saveTimerRef = useRef(null); @@ -2376,29 +2379,73 @@ const Index = () => {
- + + + + + + + + + Aucun modèle trouvé. + + {openRouterModels.map((model) => ( + { + setSelectedModel(model.id); + setModelSelectorOpen(false); + }} + className="text-xs" + > + +
+ {model.name} +
+ {defaultModel === model.id && ( + ★ + )} +
+ ))} +
+
+
+
+
{selectedModel && (