diff --git a/frontend/app/[locale]/layout.tsx b/frontend/app/[locale]/layout.tsx index fbd4dbae..0b400830 100644 --- a/frontend/app/[locale]/layout.tsx +++ b/frontend/app/[locale]/layout.tsx @@ -10,11 +10,33 @@ import { CookieBanner } from '@/components/shared/CookieBanner'; import Footer from '@/components/shared/Footer'; import { ScrollWatcher } from '@/components/shared/ScrollWatcher'; import { ThemeProvider } from '@/components/theme/ThemeProvider'; -import { getCachedBlogCategories } from '@/db/queries/blog/blog-categories'; import { AuthProvider } from '@/hooks/useAuth'; import { locales } from '@/i18n/config'; import { readServerEnv } from '@/lib/env/server-env'; +type BlogCategory = { + id: string; + slug: string; + title: string; +}; + +async function getLayoutBlogCategories(locale: string): Promise { + try { + const { getCachedBlogCategories } = await import( + '@/db/queries/blog/blog-categories' + ); + + return await getCachedBlogCategories(locale); + } catch (error) { + console.error( + `[layout] failed to load blog categories for locale "${locale}"`, + error + ); + + return []; + } +} + export default async function LocaleLayout({ children, params, @@ -28,7 +50,7 @@ export default async function LocaleLayout({ const [messages, blogCategories] = await Promise.all([ getMessages({ locale }), - getCachedBlogCategories(locale), + getLayoutBlogCategories(locale), ]); const enableAdmin = diff --git a/frontend/app/[locale]/page.tsx b/frontend/app/[locale]/page.tsx index 6c9abbfa..99624b80 100644 --- a/frontend/app/[locale]/page.tsx +++ b/frontend/app/[locale]/page.tsx @@ -12,7 +12,9 @@ export async function generateMetadata({ }) { const { locale } = await params; const t = await getTranslations({ locale, namespace: 'homepage' }); - const siteUrl = process.env.NEXT_PUBLIC_SITE_URL ?? 'https://devlovers.net'; + const siteUrl = ( + process.env.NEXT_PUBLIC_SITE_URL ?? 'https://devlovers.net' + ).replace(/\/$/, ''); const canonicalUrl = locale === 'en' ? `${siteUrl}/en` : `${siteUrl}/${locale}`; const localeMap: Record = {