From cd66535b26fe080e2cab7fa5d111e7c62d832bb6 Mon Sep 17 00:00:00 2001 From: Nassim Tabchiche Date: Fri, 20 Dec 2024 16:21:51 +0100 Subject: [PATCH] Move page title retrieval logic to breadcrumbs component This makes it easier to manage it across CE and EE builds given the fact that EE has its own (app)/+layout.svelte --- .../lib/components/Breadcrumbs/Breadcrumbs.svelte | 15 +++++++++++++++ frontend/src/routes/(app)/+layout.svelte | 14 -------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/frontend/src/lib/components/Breadcrumbs/Breadcrumbs.svelte b/frontend/src/lib/components/Breadcrumbs/Breadcrumbs.svelte index 5675c0fb23..3f18044eb9 100644 --- a/frontend/src/lib/components/Breadcrumbs/Breadcrumbs.svelte +++ b/frontend/src/lib/components/Breadcrumbs/Breadcrumbs.svelte @@ -3,6 +3,7 @@ import { page } from '$app/stores'; import { breadcrumbs, type Breadcrumb } from '$lib/utils/breadcrumbs'; import { safeTranslate } from '$lib/utils/i18n'; + import { pageTitle } from '$lib/utils/stores'; async function trimBreadcrumbsToCurrentPath( breadcrumbs: Breadcrumb[], @@ -15,9 +16,23 @@ return breadcrumbs; } + function getPageTitle(): string { + return safeTranslate( + $page.data.title || $page.data.str || $page.data.name || $breadcrumbs.length > 1 + ? $breadcrumbs[$breadcrumbs.length - 1]?.label + : $page.url.pathname.split('/').pop() + ); + } + afterNavigate(async () => { $breadcrumbs = await trimBreadcrumbsToCurrentPath($breadcrumbs, $page.url.pathname); }); + + $: { + $pageTitle = getPageTitle(); + if ($breadcrumbs.length < 2) + breadcrumbs.push([{ label: $pageTitle, href: $page.url.pathname }]); + }