Hi there! I have a problem. It seems that when I try to create a custom MetaTitle with SolidMeta, the language context is not being accessed in SSR. Here is my implementation:
// Componentimport { Title } from "@solidjs/meta";import type { JSX } from "solid-js";interface IMetaTitle { children: JSX.Element;}export function MetaTitle(props: IMetaTitle) { return <Title>{`${props.children} | WebsiteName`}</Title>;}
// Componentimport { Title } from "@solidjs/meta";import type { JSX } from "solid-js";interface IMetaTitle { children: JSX.Element;}export function MetaTitle(props: IMetaTitle) { return <Title>{`${props.children} | WebsiteName`}</Title>;}
import { MetaProvider } from "@solidjs/meta";import type { Component, JSX } from "solid-js";import { Suspense } from "solid-js";import { Toaster } from 'solid-toast';import { LanguageTagProvider, useLocationLanguageTag } from "~/shared/i18n";import { sourceLanguageTag } from "~/shared/paraglide/runtime";interface IProviders { /** Content that will be wrapped by providers. */ readonly children: JSX.Element;}export const Providers: Component<IProviders> = (props) => { const url_language_tag = useLocationLanguageTag(); const language_tag = url_language_tag ?? sourceLanguageTag; return ( <LanguageTagProvider value={language_tag}> <MetaProvider> <Suspense>{props.children}</Suspense> <Toaster /> </MetaProvider> </LanguageTagProvider> );};
import { MetaProvider } from "@solidjs/meta";import type { Component, JSX } from "solid-js";import { Suspense } from "solid-js";import { Toaster } from 'solid-toast';import { LanguageTagProvider, useLocationLanguageTag } from "~/shared/i18n";import { sourceLanguageTag } from "~/shared/paraglide/runtime";interface IProviders { /** Content that will be wrapped by providers. */ readonly children: JSX.Element;}export const Providers: Component<IProviders> = (props) => { const url_language_tag = useLocationLanguageTag(); const language_tag = url_language_tag ?? sourceLanguageTag; return ( <LanguageTagProvider value={language_tag}> <MetaProvider> <Suspense>{props.children}</Suspense> <Toaster /> </MetaProvider> </LanguageTagProvider> );};
// routeimport { MetaTitle } from "~/shared/components/metatitle";import * as m from "~/shared/paraglide/messages.js";export default function EmailValidationRoute() { return ( <> <MetaTitle>{m.meta_route_email_validation()}</MetaTitle> </> );}
// routeimport { MetaTitle } from "~/shared/components/metatitle";import * as m from "~/shared/paraglide/messages.js";export default function EmailValidationRoute() { return ( <> <MetaTitle>{m.meta_route_email_validation()}</MetaTitle> </> );}
ERROR:
throw new Error("LanguageTagCtx not found"); ^Error: LanguageTagCtx not found
throw new Error("LanguageTagCtx not found"); ^Error: LanguageTagCtx not found