From b3661381321b7c790e8685da45c0420605d9df57 Mon Sep 17 00:00:00 2001 From: Abhishekfm Date: Wed, 25 Feb 2026 16:13:05 +0530 Subject: [PATCH 1/2] description and collabrative card --- .../CollaborativesListingClient.tsx | 3 +- app/[locale]/(user)/components/Content.tsx | 31 ++++++++------ .../(user)/components/ListingComponent.tsx | 41 +------------------ 3 files changed, 22 insertions(+), 53 deletions(-) diff --git a/app/[locale]/(user)/collaboratives/CollaborativesListingClient.tsx b/app/[locale]/(user)/collaboratives/CollaborativesListingClient.tsx index f73100a2..c415d435 100644 --- a/app/[locale]/(user)/collaboratives/CollaborativesListingClient.tsx +++ b/app/[locale]/(user)/collaboratives/CollaborativesListingClient.tsx @@ -300,6 +300,7 @@ const CollaborativesListingClient = () => { title={collaborative.title || ''} variation="collapsed" iconColor="warning" + imageUrl={`${process.env.NEXT_PUBLIC_BACKEND_URL}/${collaborative.logo?.path.replace('/code/files/', '')}`} metadataContent={[ { icon: Icons.calendar as any, @@ -343,7 +344,7 @@ const CollaborativesListingClient = () => { label: 'Published by', }, ]} - description={`rest ${stripMarkdown(collaborative.summary || '')}`} + description={stripMarkdown(collaborative.summary || '')} /> ) )} diff --git a/app/[locale]/(user)/components/Content.tsx b/app/[locale]/(user)/components/Content.tsx index 79496a28..38c83ec3 100644 --- a/app/[locale]/(user)/components/Content.tsx +++ b/app/[locale]/(user)/components/Content.tsx @@ -1,13 +1,13 @@ 'use client'; -import { graphql } from '@/gql'; -import { useQuery } from '@tanstack/react-query'; import Image from 'next/image'; import Link from 'next/link'; import { useRouter } from 'next/navigation'; +import { graphql } from '@/gql'; +import { useTourTrigger } from '@/hooks/use-tour-trigger'; +import { useQuery } from '@tanstack/react-query'; import { SearchInput, Spinner, Text } from 'opub-ui'; -import { useTourTrigger } from '@/hooks/use-tour-trigger'; import { GraphQL } from '@/lib/api'; import { cn } from '@/lib/utils'; import Styles from '../page.module.scss'; @@ -24,13 +24,12 @@ const statsInfo: any = graphql(` } `); - export const Content = () => { const router = useRouter(); - + // Enable tour for first-time users useTourTrigger(true, 1500); - + const Stats: { data: any; isLoading: any } = useQuery([`statsDetails`], () => GraphQL(statsInfo, {}, []) ); @@ -64,17 +63,25 @@ export const Content = () => { }, ]; - return (
- + An Open-Source Platform for Collaborative Data-Driven Change - - Share datasets, knowledge resources, and AI use-cases for data changemakers. + + Share datasets, knowledge resources, and AI use-cases for data + changemakers.
@@ -115,7 +122,7 @@ export const Content = () => { {item.label} @@ -124,7 +131,7 @@ export const Content = () => { ))}
)} - + {/*
{Sectors.map((item, index) => (
diff --git a/app/[locale]/(user)/components/ListingComponent.tsx b/app/[locale]/(user)/components/ListingComponent.tsx index b446cc8b..72dc5f55 100644 --- a/app/[locale]/(user)/components/ListingComponent.tsx +++ b/app/[locale]/(user)/components/ListingComponent.tsx @@ -28,46 +28,7 @@ import { } from '@/components/loading'; import Filter from '../datasets/components/FIlter/Filter'; import Styles from '../datasets/dataset.module.scss'; - -// Helper function to strip markdown and HTML tags for card preview -const stripMarkdown = (markdown: string): string => { - if (!markdown) return ''; - return ( - markdown - // Remove code blocks first (before other replacements) - .replace(/```[\s\S]*?```/g, '') - // Remove inline code - .replace(/`([^`]+)`/g, '$1') - // Remove images - .replace(/!\[([^\]]*)\]\([^)]+\)/g, '$1') - // Remove links - .replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') - // Remove headers - .replace(/^#{1,6}\s+/gm, '') - // Remove bold - .replace(/\*\*([^*]+)\*\*/g, '$1') - .replace(/__([^_]+)__/g, '$1') - // Remove italic - .replace(/\*([^*]+)\*/g, '$1') - .replace(/_([^_]+)_/g, '$1') - // Remove strikethrough - .replace(/~~([^~]+)~~/g, '$1') - // Remove blockquotes - .replace(/^\s*>\s+/gm, '') - // Remove horizontal rules - .replace(/^(-{3,}|_{3,}|\*{3,})$/gm, '') - // Remove list markers - .replace(/^\s*[-*+]\s+/gm, '') - .replace(/^\s*\d+\.\s+/gm, '') - // Remove HTML tags - .replace(/<[^>]*>/g, '') - // Remove extra whitespace and newlines - .replace(/\n\s*\n/g, '\n') - .replace(/\n/g, ' ') - .replace(/\s+/g, ' ') - .trim() - ); -}; +import { stripMarkdown } from '../search/components/UnifiedListingComponent'; // Interfaces interface Bucket { From a69c1c89ca88a7fcd8bea4cecaf1c544342925e4 Mon Sep 17 00:00:00 2001 From: Abhishekfm Date: Wed, 25 Feb 2026 16:26:48 +0530 Subject: [PATCH 2/2] Description in other cards --- .../[collaborativeSlug]/CollaborativeDetailsClient.tsx | 5 +++-- .../[datasetIdentifier]/components/SimilarDatasets/index.tsx | 3 ++- app/[locale]/(user)/publishers/components/Datasets.tsx | 3 ++- app/[locale]/(user)/publishers/components/UseCases.tsx | 3 ++- .../(user)/usecases/[useCaseSlug]/UsecaseDetailsClient.tsx | 3 ++- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx b/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx index 582c58dd..1d7c1d9e 100644 --- a/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx +++ b/app/[locale]/(user)/collaboratives/[collaborativeSlug]/CollaborativeDetailsClient.tsx @@ -20,6 +20,7 @@ import BreadCrumbs from '@/components/BreadCrumbs'; import { Icons } from '@/components/icons'; import JsonLd from '@/components/JsonLd'; import { Loading } from '@/components/loading'; +import { stripMarkdown } from '../../search/components/UnifiedListingComponent'; import PrimaryDetails from '../components/Details'; import Metadata from '../components/Metadata'; @@ -476,7 +477,7 @@ const CollaborativeDetailClient = () => { const commonProps = { title: useCase.title || '', - description: useCase.summary || '', + description: stripMarkdown(useCase.summary || ''), metadataContent: MetadataContent, tag: useCase.tags?.map((t: any) => t.value) || [], footerContent: FooterContent, @@ -558,7 +559,7 @@ const CollaborativeDetailClient = () => { label: 'Published by', }, ]} - description={dataset.description || ''} + description={stripMarkdown(dataset.description || '')} /> ))}
diff --git a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/SimilarDatasets/index.tsx b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/SimilarDatasets/index.tsx index aff25dbb..63a69f98 100644 --- a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/SimilarDatasets/index.tsx +++ b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/SimilarDatasets/index.tsx @@ -1,4 +1,5 @@ import { useParams } from 'next/navigation'; +import { stripMarkdown } from '@/app/[locale]/(user)/search/components/UnifiedListingComponent'; import { graphql } from '@/gql'; import { useQuery } from '@tanstack/react-query'; import { @@ -123,7 +124,7 @@ const SimilarDatasets: React.FC = () => { {' '} { ]} key={index} title={item.title} - description={item.description} + description={stripMarkdown(item.description || '')} metadataContent={[ { icon: Icons.calendar as any, diff --git a/app/[locale]/(user)/publishers/components/UseCases.tsx b/app/[locale]/(user)/publishers/components/UseCases.tsx index cfb2b7eb..e07ffbe6 100644 --- a/app/[locale]/(user)/publishers/components/UseCases.tsx +++ b/app/[locale]/(user)/publishers/components/UseCases.tsx @@ -7,6 +7,7 @@ import { Card, Icon, Spinner, Text } from 'opub-ui'; import { GraphQL } from '@/lib/api'; import { cn, formatDate } from '@/lib/utils'; import { Icons } from '@/components/icons'; +import { stripMarkdown } from '../../search/components/UnifiedListingComponent'; const userPublishedUseCasesDoc: any = graphql(` query userPublishedUseCasesList($userId: ID!) { @@ -180,7 +181,7 @@ const UseCases = ({ type }: { type: 'organization' | 'Publisher' }) => { label: 'Published by', }, ]} - description={item.summary} + description={stripMarkdown(item.summary || '')} iconColor="warning" variation={'collapsed'} /> diff --git a/app/[locale]/(user)/usecases/[useCaseSlug]/UsecaseDetailsClient.tsx b/app/[locale]/(user)/usecases/[useCaseSlug]/UsecaseDetailsClient.tsx index 044e1699..64853dde 100644 --- a/app/[locale]/(user)/usecases/[useCaseSlug]/UsecaseDetailsClient.tsx +++ b/app/[locale]/(user)/usecases/[useCaseSlug]/UsecaseDetailsClient.tsx @@ -16,6 +16,7 @@ import BreadCrumbs from '@/components/BreadCrumbs'; import { Icons } from '@/components/icons'; import JsonLd from '@/components/JsonLd'; import { Loading } from '@/components/loading'; +import { stripMarkdown } from '../../search/components/UnifiedListingComponent'; import PrimaryDetails from '../components/Details'; import Metadata from '../components/Metadata'; import Dashboards from './Dashboards'; @@ -334,7 +335,7 @@ const UseCaseDetailClient = () => { label: 'Published by', }, ]} - description={dataset.description || ''} + description={stripMarkdown(dataset.description || '')} /> ))}