diff --git a/apps/web/components/LanguageToggler/LanguageToggler.tsx b/apps/web/components/LanguageToggler/LanguageToggler.tsx index 92387da822c9..18acbb753c27 100644 --- a/apps/web/components/LanguageToggler/LanguageToggler.tsx +++ b/apps/web/components/LanguageToggler/LanguageToggler.tsx @@ -110,7 +110,7 @@ export const LanguageToggler = ({ activeTranslations = res.data?.getContentSlug?.activeTranslations } - if (resolveLinkTypeLocally) { + if ((type as string) === 'genericListItem' || resolveLinkTypeLocally) { const localType = typeResolver(pathWithoutQueryParams)?.type if (localType) { type = localType diff --git a/apps/web/hooks/useLinkResolver/useLinkResolver.ts b/apps/web/hooks/useLinkResolver/useLinkResolver.ts index 216dcabce6a5..529826e6674f 100644 --- a/apps/web/hooks/useLinkResolver/useLinkResolver.ts +++ b/apps/web/hooks/useLinkResolver/useLinkResolver.ts @@ -39,6 +39,10 @@ export const routesTemplate = { is: '/s/[organization]/vidburdir', en: '/en/o/[organization]/events', }, + organizationsubpagelistitem: { + is: '/s/[organization]/[slug]/[listItemSlug]', + en: '/en/o/[organization]/[slug]/[listItemSlug]', + }, aboutsubpage: { is: '/s/stafraent-island/[slug]', en: '', diff --git a/apps/web/pages/s/[slug]/[subSlug]/[genericListItemSlug]/index.tsx b/apps/web/pages/s/[slug]/[subSlug]/[genericListItemSlug]/index.tsx index ef1ffe2c8610..5f70910f7d40 100644 --- a/apps/web/pages/s/[slug]/[subSlug]/[genericListItemSlug]/index.tsx +++ b/apps/web/pages/s/[slug]/[subSlug]/[genericListItemSlug]/index.tsx @@ -62,6 +62,11 @@ export const Component: ScreenType = ({ text: activeLocale === 'is' ? 'Til baka' : 'Go back', // TODO: perhaps read this value from contentful url: backLinkUrl, }, + customContentfulIds: [ + parentProps.componentProps.organizationPage?.id, + parentProps.componentProps.subpage?.id, + genericListItemProps.item.id, + ], }} /> ) diff --git a/apps/web/screens/Organization/SubPage.tsx b/apps/web/screens/Organization/SubPage.tsx index 6eccec9f281f..79f0f6c5cbd7 100644 --- a/apps/web/screens/Organization/SubPage.tsx +++ b/apps/web/screens/Organization/SubPage.tsx @@ -57,6 +57,7 @@ export interface SubPageProps { customContent?: React.ReactNode backLink?: { text: string; url: string } customBreadcrumbItems?: BreadCrumbItem[] + customContentfulIds?: (string | undefined)[] } const SubPage: Screen = ({ @@ -66,6 +67,7 @@ const SubPage: Screen = ({ locale, customContent, customBreadcrumbItems, + customContentfulIds, backLink, }) => { const router = useRouter() @@ -74,7 +76,11 @@ const SubPage: Screen = ({ const n = useNamespace(namespace) const { linkResolver } = useLinkResolver() - useContentfulId(organizationPage?.id, subpage?.id) + const contentfulIds = customContentfulIds + ? customContentfulIds + : [organizationPage?.id, subpage?.id] + + useContentfulId(...contentfulIds) const pathWithoutHash = router.asPath.split('#')[0] // eslint-disable-next-line @typescript-eslint/ban-ts-comment diff --git a/apps/web/screens/queries/GenericList.ts b/apps/web/screens/queries/GenericList.ts index 1f991bfcf78e..73cd9b6f972a 100644 --- a/apps/web/screens/queries/GenericList.ts +++ b/apps/web/screens/queries/GenericList.ts @@ -27,6 +27,7 @@ export const GET_GENERIC_LIST_ITEMS_QUERY = gql` export const GET_GENERIC_LIST_ITEM_BY_SLUG_QUERY = gql` query GetGenericListItemBySlug($input: GetGenericListItemBySlugInput!) { getGenericListItemBySlug(input: $input) { + id date title slug