diff --git a/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx b/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx index 6e1665de..3fffddd6 100644 --- a/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx +++ b/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx @@ -15,7 +15,10 @@ import { useQuery } from '@tanstack/react-query'; import { Card, Text } from 'opub-ui'; import { GraphQLPublic } from '@/lib/api'; -import { isCollaborativeSubdomainHost as isCollaborativeSubdomainHostname } from '@/lib/collaborativesRouting'; +import { + getPlatformRootUrl, + isCollaborativeSubdomainHost as isCollaborativeSubdomainHostname, +} from '@/lib/collaborativesRouting'; import { formatDate, generateJsonLd } from '@/lib/utils'; import BreadCrumbs from '@/components/BreadCrumbs'; import { Icons } from '@/components/icons'; @@ -322,6 +325,12 @@ const CollaborativeDetailClient = () => { }, }); + const platformRootUrl = getPlatformRootUrl(); + const organizationPublisherHref = (org: any) => { + const path = `/publishers/organization/${org.slug + '_' + org.id}`; + return platformRootUrl === '/' ? path : `${platformRootUrl}${path}`; + }; + return ( <> @@ -393,7 +402,7 @@ const CollaborativeDetailClient = () => { {CollaborativeDetailsData?.collaborativeBySlug?.supportingOrganizations?.map( (org: any) => (
@@ -420,7 +429,7 @@ const CollaborativeDetailClient = () => { {CollaborativeDetailsData?.collaborativeBySlug?.partnerOrganizations?.map( (org: any) => (
diff --git a/app/[locale]/(user)/collaboratives/components/Metadata.tsx b/app/[locale]/(user)/collaboratives/components/Metadata.tsx index f1849d9d..b03c320e 100644 --- a/app/[locale]/(user)/collaboratives/components/Metadata.tsx +++ b/app/[locale]/(user)/collaboratives/components/Metadata.tsx @@ -1,10 +1,11 @@ +import { useEffect, useState } from 'react'; import Image from 'next/image'; import Link from 'next/link'; import { Button, Icon, Text, Tooltip } from 'opub-ui'; -import { useEffect, useState } from 'react'; -import { Icons } from '@/components/icons'; +import { getPlatformRootUrl } from '@/lib/collaborativesRouting'; import { formatDate, getWebsiteTitle } from '@/lib/utils'; +import { Icons } from '@/components/icons'; const Metadata = ({ data, setOpen }: { data: any; setOpen?: any }) => { const [platformTitle, setPlatformTitle] = useState(null); @@ -41,12 +42,16 @@ const Metadata = ({ data, setOpen }: { data: any; setOpen?: any }) => { className="text-primaryBlue underline lg:text-white" href={data.collaborativeBySlug.platformUrl} > - + {platformTitle?.trim() ? platformTitle : 'Visit Platform'} ), - tooltipContent: data.collaborativeBySlug.platformUrl === null ? 'N/A' : platformTitle, + tooltipContent: + data.collaborativeBySlug.platformUrl === null ? 'N/A' : platformTitle, }, { label: 'Last Updated', @@ -58,17 +63,19 @@ const Metadata = ({ data, setOpen }: { data: any; setOpen?: any }) => { value: (
{data.collaborativeBySlug.sectors.length > 0 ? ( - data.collaborativeBySlug.sectors.map((sector: any, index: number) => ( - - {sector.name - - )) + data.collaborativeBySlug.sectors.map( + (sector: any, index: number) => ( + + {sector.name + + ) + ) ) : ( N/A // Fallback if no sectors are available )} @@ -79,7 +86,8 @@ const Metadata = ({ data, setOpen }: { data: any; setOpen?: any }) => { label: 'SDG Goals', value: (
- {data.collaborativeBySlug.sdgs && data.collaborativeBySlug.sdgs.length > 0 ? ( + {data.collaborativeBySlug.sdgs && + data.collaborativeBySlug.sdgs.length > 0 ? ( data.collaborativeBySlug.sdgs.map((sdg: any, index: number) => ( { ), }, ]; - + // Use collaborative logo if available, otherwise use a default const image = data.collaborativeBySlug?.logo?.path ? `${process.env.NEXT_PUBLIC_BACKEND_URL}/${data.collaborativeBySlug.logo.path.replace('/code/files/', '')}` : '/org.png'; + const platformRootUrl = getPlatformRootUrl(); + const contributorHref = (contributor: any) => { + const path = `/publishers/${contributor.fullName + '_' + contributor.id}`; + return platformRootUrl === '/' ? path : `${platformRootUrl}${path}`; + }; + return (
@@ -115,7 +129,9 @@ const Metadata = ({ data, setOpen }: { data: any; setOpen?: any }) => { > ABOUT THE COLLABORATIVE{' '} - DETAILS + + DETAILS +
{setOpen && ( @@ -125,7 +141,7 @@ const Metadata = ({ data, setOpen }: { data: any; setOpen?: any }) => { )}
-
+
{ {metadata.map((item, index) => (
{item.label} @@ -157,38 +173,41 @@ const Metadata = ({ data, setOpen }: { data: any; setOpen?: any }) => {
))} {/* Contributors Section */} - {data.collaborativeBySlug.contributors && data.collaborativeBySlug.contributors.length > 0 && ( -
- - Contributors - -
- {data.collaborativeBySlug.contributors.map((contributor: any) => ( - - - {contributor.fullName} - - - ))} + {data.collaborativeBySlug.contributors && + data.collaborativeBySlug.contributors.length > 0 && ( +
+ + Contributors + +
+ {data.collaborativeBySlug.contributors.map( + (contributor: any) => ( + + + {contributor.fullName} + + + ) + )} +
-
- )} + )}