From 81ec26ac62d88af3151fdbe44e035306eb7baa89 Mon Sep 17 00:00:00 2001 From: Abhishekfm Date: Wed, 15 Apr 2026 17:36:42 +0530 Subject: [PATCH] Changed the subdomain path to .collab --- .../CollaborativeDetailsClient.tsx | 13 +++++---- .../collaboratives/components/Metadata.tsx | 13 +++++++++ .../components/CollaborativeSubdomainNav.tsx | 19 +++++++++++-- lib/collaborativesRouting.ts | 18 ++++++++---- middleware.ts | 28 +++++++++++++++++-- 5 files changed, 74 insertions(+), 17 deletions(-) diff --git a/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx b/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx index 3fffddd6..a6667481 100644 --- a/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx +++ b/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx @@ -15,10 +15,7 @@ import { useQuery } from '@tanstack/react-query'; import { Card, Text } from 'opub-ui'; import { GraphQLPublic } from '@/lib/api'; -import { - getPlatformRootUrl, - isCollaborativeSubdomainHost as isCollaborativeSubdomainHostname, -} from '@/lib/collaborativesRouting'; +import { isCollaborativeSubdomainHost as isCollaborativeSubdomainHostname } from '@/lib/collaborativesRouting'; import { formatDate, generateJsonLd } from '@/lib/utils'; import BreadCrumbs from '@/components/BreadCrumbs'; import { Icons } from '@/components/icons'; @@ -325,10 +322,14 @@ const CollaborativeDetailClient = () => { }, }); - const platformRootUrl = getPlatformRootUrl(); const organizationPublisherHref = (org: any) => { const path = `/publishers/organization/${org.slug + '_' + org.id}`; - return platformRootUrl === '/' ? path : `${platformRootUrl}${path}`; + // Match getPlatformEntityUrl() behavior (absolute to platform host + locale) + const platformBaseUrl = ( + process.env.NEXT_PUBLIC_PLATFORM_URL || '' + ).replace(/\/$/, ''); + const localeSegment = locale ? `/${locale}` : ''; + return platformBaseUrl ? `${platformBaseUrl}${localeSegment}${path}` : path; }; return ( diff --git a/app/[locale]/(user)/collaboratives/components/Metadata.tsx b/app/[locale]/(user)/collaboratives/components/Metadata.tsx index b03c320e..9265857c 100644 --- a/app/[locale]/(user)/collaboratives/components/Metadata.tsx +++ b/app/[locale]/(user)/collaboratives/components/Metadata.tsx @@ -113,8 +113,21 @@ const Metadata = ({ data, setOpen }: { data: any; setOpen?: any }) => { : '/org.png'; const platformRootUrl = getPlatformRootUrl(); + const getLocaleSegment = () => { + if (typeof window === 'undefined') return ''; + const match = window.location.pathname.match(/^\/([a-z]{2})(\/|$)/i); + return match ? `/${match[1].toLowerCase()}` : ''; + }; const contributorHref = (contributor: any) => { const path = `/publishers/${contributor.fullName + '_' + contributor.id}`; + // Match getPlatformEntityUrl() behavior (absolute to NEXT_PUBLIC_PLATFORM_URL + locale) + const platformBaseUrl = (process.env.NEXT_PUBLIC_PLATFORM_URL || '').replace( + /\/$/, + '' + ); + const localeSegment = getLocaleSegment(); + if (platformBaseUrl) return `${platformBaseUrl}${localeSegment}${path}`; + return platformRootUrl === '/' ? path : `${platformRootUrl}${path}`; }; diff --git a/app/[locale]/dashboard/components/CollaborativeSubdomainNav.tsx b/app/[locale]/dashboard/components/CollaborativeSubdomainNav.tsx index e5ce257a..09378a18 100644 --- a/app/[locale]/dashboard/components/CollaborativeSubdomainNav.tsx +++ b/app/[locale]/dashboard/components/CollaborativeSubdomainNav.tsx @@ -2,8 +2,8 @@ import Image from 'next/image'; import Link from 'next/link'; +import { useParams } from 'next/navigation'; import { Text } from 'opub-ui'; -import { getPlatformRootUrl } from '@/lib/collaborativesRouting'; type Props = { useCasesTargetId?: string; @@ -20,11 +20,26 @@ export function CollaborativeSubdomainNav({ useCasesTargetId = 'collaborative-use-cases', datasetsTargetId = 'collaborative-datasets', }: Props) { + const params = useParams(); + const locale = + typeof (params as any)?.locale === 'string' + ? (params as any).locale + : undefined; + + const platformBaseUrl = (process.env.NEXT_PUBLIC_PLATFORM_URL || '').replace( + /\/$/, + '' + ); + const localeSegment = locale ? `/${locale}` : ''; + const listingHref = platformBaseUrl + ? `${platformBaseUrl}${localeSegment}/collaboratives` + : `${localeSegment}/collaboratives`; + return (