diff --git a/frontend/src/components/ModelSelector.tsx b/frontend/src/components/ModelSelector.tsx index 9a09755..54a767c 100644 --- a/frontend/src/components/ModelSelector.tsx +++ b/frontend/src/components/ModelSelector.tsx @@ -2,8 +2,15 @@ import { useEffect, useRef, useState } from "react"; import { useStore } from "../store/useStore"; import { ChevronDown } from "./Icon"; -/** Sélecteur de modèle Ollama (chip orange de la barre supérieure). */ -export function ModelSelector() { +/** Sélecteur de modèle Ollama (chip orange, pastille = état de chargement). + + variant "composer" : taille alignée sur les chips du composer, menu vers + le haut. */ +export function ModelSelector({ + variant = "top", +}: { + variant?: "top" | "composer"; +}) { const { models, selectedModel, @@ -31,7 +38,11 @@ export function ModelSelector() {
{open && ( -
+
{models.length === 0 && (
Aucun modèle installé diff --git a/frontend/src/components/TopBar.tsx b/frontend/src/components/TopBar.tsx index 592283e..0520781 100644 --- a/frontend/src/components/TopBar.tsx +++ b/frontend/src/components/TopBar.tsx @@ -2,7 +2,6 @@ import { useEffect, useState } from "react"; import { useStore } from "../store/useStore"; import { getVersion } from "../api/client"; import { LokiMark } from "./Icon"; -import { ModelSelector } from "./ModelSelector"; import { SessionMenu } from "./SessionMenu"; /** Barre supérieure sombre : logo, fil d'Ariane, statut Ollama, sélecteur. */ @@ -72,8 +71,6 @@ export function TopBar() { {connected ? status?.host.replace(/^https?:\/\//, "") : "déconnecté"}
- -
); } diff --git a/frontend/src/panels/ChatPanel.tsx b/frontend/src/panels/ChatPanel.tsx index 5bcf9dd..158f035 100644 --- a/frontend/src/panels/ChatPanel.tsx +++ b/frontend/src/panels/ChatPanel.tsx @@ -4,6 +4,7 @@ import { ChevronDown, LokiMark, SendIcon } from "../components/Icon"; import { ToolCard } from "../components/ToolCard"; import { MessageContent } from "../components/MessageContent"; import { ProjectChip } from "../components/ProjectChip"; +import { ModelSelector } from "../components/ModelSelector"; import type { Message, ToolCall } from "../api/client"; /** Panneau central : barre de contexte, fil de conversation, composer. */ @@ -138,13 +139,7 @@ export function ChatPanel() {
-
- - {selectedModel || "—"} -
+ {streaming && !showingStreaming ? ( Travail en cours : {workingSession?.title ?? "session ouverte"}