11import { useEffect , useRef , useState } from 'react' ;
22import Link from 'next/link' ;
3- import { Button , Tag , Text , Tooltip } from 'opub-ui' ;
3+ import { Button , Icon , Tag , Text , Tooltip } from 'opub-ui' ;
44
55import { formatDateString } from '@/lib/utils' ;
6+ import { Icons } from '@/components/icons' ;
67
78interface MetadataItem {
89 label : string ;
@@ -19,6 +20,7 @@ interface Dataset {
1920 tags : string [ ] ;
2021 categories : string [ ] ;
2122 formats : string [ ] ;
23+ has_charts : boolean ,
2224 title : string ;
2325 description : string ;
2426 created : string ; // ISO 8601 date string
@@ -27,8 +29,6 @@ interface Dataset {
2729}
2830
2931const Cards = ( { data } : { data : Dataset } ) => {
30-
31-
3232 function getMetadataValue ( data : Dataset , label : string ) : string | null {
3333 const metadataEntry = data . metadata . find (
3434 ( entry ) => entry . metadata_item . label === label
@@ -109,7 +109,6 @@ const Cards = ({ data }: { data: Dataset }) => {
109109 { getMetadataValue ( data , 'Update Frequency' ) || 'NA' }
110110 </ Text >
111111 </ div >
112-
113112 </ span >
114113 </ div >
115114
@@ -147,29 +146,35 @@ const Cards = ({ data }: { data: Dataset }) => {
147146 </ div >
148147 </ div >
149148 </ div >
150- < div className = "mt-2 flex flex-wrap gap-3 lg:gap-6" >
151- { data . formats ?. length > 0 && (
152- < span className = "flex items-center gap-4 py-1 pr-2 lg:w-2/5" >
153- { data . formats . map ( ( fileType , index ) => (
154-
155- < Tag key = { index } background-color = "#E1F0FF" >
156- { fileType }
157- </ Tag >
158- ) ) }
159- </ span >
160- ) }
149+ < div className = "mt-2 flex flex-wrap gap-3 lg:gap-6" >
150+ < div className = "flex items-center gap-1 align-middle lg:w-2/5" >
151+ { data . formats ?. length > 0 && (
152+ < span className = "flex items-center gap-4 py-1 pr-2 " >
153+ { data . formats . map ( ( fileType , index ) => (
154+ < Tag key = { index } background-color = "#E1F0FF" >
155+ { fileType }
156+ </ Tag >
157+ ) ) }
158+ </ span >
159+ ) }
160+
161+ { data . has_charts && < Icon source = { Icons . chart } size = { 20 } /> }
162+ </ div >
161163
162164 { data ?. categories . length > 0 && (
163- < span className = "flex gap-2 flex-wrap py-1 pr-2" >
165+ < span className = "flex flex-wrap gap-2 py-1 pr-2" >
164166 { data ?. categories . map ( ( category , index ) => (
165- < div
166- key = { index }
167- className = "rounded-1 px-2 py-1 text-75 border-1"
168- style = { { borderColor : '#95E79E' , borderWidth : '2px' , borderStyle : 'solid' } }
169- >
170- { category }
171- </ div >
172-
167+ < div
168+ key = { index }
169+ className = "rounded-1 border-1 px-2 py-1 text-75"
170+ style = { {
171+ borderColor : '#95E79E' ,
172+ borderWidth : '2px' ,
173+ borderStyle : 'solid' ,
174+ } }
175+ >
176+ { category }
177+ </ div >
173178 ) ) }
174179 </ span >
175180 ) }
0 commit comments