diff --git a/ui/src/App.tsx b/ui/src/App.tsx index 85050db..b6493b1 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -1,3 +1,4 @@ +import { useEffect, useCallback } from "react"; import { BrowserRouter as Router, Routes, Route, Navigate, NavLink } from "react-router-dom"; import { useTheme } from "./contexts/ThemeProvider"; import { APIProvider } from "./contexts/APIProvider"; @@ -6,9 +7,23 @@ import ModelPage from "./pages/Models"; import ActivityPage from "./pages/Activity"; import ConnectionStatus from "./components/ConnectionStatus"; import { RiSunFill, RiMoonFill } from "react-icons/ri"; +import { usePersistentState } from "./hooks/usePersistentState"; function App() { const { isNarrow, toggleTheme, isDarkMode } = useTheme(); + const [appTitle, setAppTitle] = usePersistentState("app-title", "llama-swap"); + + const handleTitleChange = useCallback( + (newTitle: string) => { + setAppTitle(newTitle); + document.title = newTitle; + }, + [setAppTitle] + ); + + useEffect(() => { + document.title = appTitle; // Set initial title + }, [appTitle]); return ( @@ -16,7 +31,28 @@ function App() {