diff --git a/ui/src/components/Header.tsx b/ui/src/components/Header.tsx index 425584f..556db3a 100644 --- a/ui/src/components/Header.tsx +++ b/ui/src/components/Header.tsx @@ -5,7 +5,7 @@ import { useTheme } from "../contexts/ThemeProvider"; import ConnectionStatusIcon from "./ConnectionStatus"; export function Header() { - const { screenWidth, toggleTheme, isDarkMode, appTitle, setAppTitle } = useTheme(); + const { screenWidth, toggleTheme, isDarkMode, appTitle, setAppTitle, isNarrow } = useTheme(); const handleTitleChange = useCallback( (newTitle: string) => { setAppTitle(newTitle.replace(/\n/g, "").trim().substring(0, 64) || "llama-swap"); @@ -17,7 +17,7 @@ export function Header() { `text-gray-600 hover:text-black dark:text-gray-300 dark:hover:text-gray-100 p-1 ${isActive ? "font-semibold" : ""}`; return ( -
+
{screenWidth !== "xs" && screenWidth !== "sm" && (

("showIdorName", "id"); // true = show ID, false = show name + const [menuOpen, setMenuOpen] = useState(false); const filteredModels = useMemo(() => { return models.filter((model) => showUnlisted || !model.unlisted); @@ -66,33 +68,77 @@ function ModelsPanel() { return (
-

Models

-
-
- +
+

Models

+ {isNarrow && ( +
+ + {menuOpen && ( +
+ + + +
+ )} +
+ )} +
+ {!isNarrow && ( +
+
+ + +
- -
+ )}