From 763f810c8d483cbb914f8633d5cf5b7358393310 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Mon, 23 Mar 2026 20:25:31 -0400 Subject: [PATCH] Fix tab titles not rendering for plain-text tabs titleRenderer was always set as a function reference in buildRegistration(), so the v-if="tab.titleRenderer" guard in GTabs was always true. TabTitleContent would then return a plain string which Vue 2.7 can't render from a render function, producing empty tab labels. Only set titleRenderer when the tab actually has a title slot, so plain-text titles fall through to the {{ tab.title }} template interpolation. --- client/src/components/BaseComponents/GTab.vue | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/client/src/components/BaseComponents/GTab.vue b/client/src/components/BaseComponents/GTab.vue index 1f0c294e9ec..97dba451c55 100644 --- a/client/src/components/BaseComponents/GTab.vue +++ b/client/src/components/BaseComponents/GTab.vue @@ -54,17 +54,10 @@ const shouldRender = computed(() => { return hasBeenActive.value; }); -function titleRenderer() { - if (slots.title) { - return slots.title(); - } - return undefined; -} - function buildRegistration(): TabRegistration { return { title: props.title, - titleRenderer, + titleRenderer: slots.title ? () => slots.title!() : undefined, disabled: props.disabled, id: props.id, buttonId: props.buttonId,