From ab57af1f238b3593ee1cc1da801181669c4a64b4 Mon Sep 17 00:00:00 2001 From: Zoe <62722391+juls0730@users.noreply.github.com> Date: Tue, 24 Feb 2026 16:33:32 +0000 Subject: [PATCH] feat: show page titles on agent and topic pages This commit moves the actions bar out of the default template and into the individual pages so that they can display their titles at the top. this commit also has pages set the meta title so tabs are labeled nicely. --- app/components/ChatInput.vue | 6 ++- app/components/Sidenav/NavHome.vue | 5 ++- app/layouts/default.vue | 8 ---- app/pages/agent/[id]/index.vue | 48 ++++++++++++++------- app/pages/agent/[id]/profile.vue | 11 +++++ app/pages/agent/[id]/topic/[topicId].vue | 53 +++++++++++++++++------- app/pages/index.vue | 28 +++++++++---- 7 files changed, 108 insertions(+), 51 deletions(-) diff --git a/app/components/ChatInput.vue b/app/components/ChatInput.vue index 3697d99..a17736e 100644 --- a/app/components/ChatInput.vue +++ b/app/components/ChatInput.vue @@ -111,8 +111,10 @@ const handleWindowKeyDown = async (event: KeyboardEvent) => { return; } - // redirect all standard keyboard input to the input field - inputRef.value?.focus(); + if (document.activeElement === document.body) { + // redirect all standard keyboard input to the input field + inputRef.value?.focus(); + } }; watch(inputValue, async () => { diff --git a/app/components/Sidenav/NavHome.vue b/app/components/Sidenav/NavHome.vue index 4f751fb..cad5736 100644 --- a/app/components/Sidenav/NavHome.vue +++ b/app/components/Sidenav/NavHome.vue @@ -131,9 +131,10 @@ onMounted(() => { :aria-label="agent.name" class="mt-1 group px-2 decoration-none flex justify-between items-center shrink-0 rounded-lg transition-colors cursor-pointer h-9 text-[var(--text-secondary)] hover:bg-[var(--color-hover)] focus-visible:bg-[var(--color-hover)] focus:text-[var(--text-primary)]"> - + {{ agent.name }} diff --git a/app/layouts/default.vue b/app/layouts/default.vue index 61cc718..724b106 100644 --- a/app/layouts/default.vue +++ b/app/layouts/default.vue @@ -17,14 +17,6 @@ useKeyboardShortcuts();
-
-
- -
-
diff --git a/app/pages/agent/[id]/index.vue b/app/pages/agent/[id]/index.vue index 76e7e58..e9e5381 100644 --- a/app/pages/agent/[id]/index.vue +++ b/app/pages/agent/[id]/index.vue @@ -7,6 +7,7 @@ const route = useRoute(); const inputValue = ref(''); const pendingMessage = ref(null); +const { open: sidebarOpen, openSidebar } = useSidebar(); const { createTopic, sendMessage, autoRename } = useChat(route.params.id as string); const { getAgent } = useAgents(); const { providers } = useModels(); @@ -15,6 +16,8 @@ const agent = getAgent(route.params.id as string); if (!agent.value) navigateTo('/'); +useHead({ title: `${agent.value!.name} | Veridian` }); + const handleSubmit = async (message: string, model: ModelWithProvider | null) => { if (!model) { console.error('No model selected'); @@ -83,22 +86,37 @@ const handleSubmit = async (message: string, model: ModelWithProvider | null) =>