@@ -3,26 +3,29 @@ import ListItem from "@/components/ui/list-item";
33import { updateFrequencyValues } from "@/lib/utils" ;
44import React from "react" ;
55import { getTranslations } from "next-intl/server" ;
6+ import Link from "next/link" ;
7+ import { ExternalLink } from "lucide-react" ;
8+ import { formatDate } from "date-fns" ;
69
710export default async function DatasetInfo ( { dataset } : { dataset : Dataset } ) {
811 const t = await getTranslations ( ) ;
12+ const landingPage = dataset . extras ?. find (
13+ ( field ) => field . key . toLowerCase ( ) === "landing_page" ,
14+ ) ?. value ;
915 const authorName = dataset . extras ?. find (
10- ( field ) => field . key . toLowerCase ( ) === "contact_point_name"
16+ ( field ) => field . key . toLowerCase ( ) === "contact_point_name" ,
1117 ) ?. value ;
1218 const authorEmail = dataset . extras ?. find (
13- ( field ) => field . key . toLowerCase ( ) === "contact_point_email"
14- ) ?. value ;
15- const documentation = dataset . extras ?. find (
16- ( field ) => field . key . toLowerCase ( ) === "documentation"
19+ ( field ) => field . key . toLowerCase ( ) === "contact_point_email" ,
1720 ) ?. value ;
18- const temporalStart = dataset . extras ?. find (
19- ( field ) => field . key . toLowerCase ( ) === "temporal_start"
21+ const issued = dataset . extras ?. find (
22+ ( field ) => field . key . toLowerCase ( ) === "issued" ,
2023 ) ?. value ;
21- const temporalEnd = dataset . extras ?. find (
22- ( field ) => field . key . toLowerCase ( ) === "temporal_end"
24+ const conformsTo = dataset . extras ?. find (
25+ ( field ) => field . key . toLowerCase ( ) === "conforms_to" ,
2326 ) ?. value ;
2427 const updateFrequency = dataset . extras ?. find (
25- ( field ) => field . key . toLowerCase ( ) === "frequency"
28+ ( field ) => field . key . toLowerCase ( ) === "frequency" ,
2629 ) ?. value ;
2730 const updateFrequencyCode = updateFrequency ?. split ( "/" ) . pop ( ) ?. trim ( ) ;
2831 const updateFrequencyLabel =
@@ -31,52 +34,51 @@ export default async function DatasetInfo({ dataset }: { dataset: Dataset }) {
3134 updateFrequencyCode as keyof typeof updateFrequencyValues
3235 ]
3336 : "" ;
34-
3537 return (
3638 < div className = "divide-y " >
37- < ListItem title = { t ( "Metadata.author" ) } >
39+ < ListItem title = { t ( "Common.organization" ) } >
40+ { dataset . organization . title }
41+ </ ListItem >
42+ < ListItem title = { t ( "Metadata.updateFrequency" ) } >
43+ { updateFrequencyLabel || "--" }
44+ </ ListItem >
45+ < ListItem title = { t ( "Metadata.landingPage" ) } >
46+ { landingPage ? (
47+ < Link
48+ className = "underline text-theme-green hover:text-theme-green-900 flex items-center justify-end gap-2"
49+ href = { landingPage }
50+ target = "_blank"
51+ >
52+ { t ( "Common.visit" ) } < ExternalLink size = { 16 } />
53+ </ Link >
54+ ) : (
55+ "--"
56+ ) }
57+ </ ListItem >
58+ < ListItem title = { t ( "Metadata.contactPoint" ) } >
3859 { authorEmail ? (
3960 < a
4061 href = { `mailto:${ authorEmail } ` }
4162 className = "underline text-theme-green"
4263 >
43- { authorName }
64+ { authorName || authorEmail }
4465 </ a >
4566 ) : (
46- authorName || "--"
67+ authorName || "--"
4768 ) }
4869 </ ListItem >
49- < ListItem title = { t ( "Metadata.updateFrequency" ) } >
50- { updateFrequencyLabel || "--" }
51- </ ListItem >
52- < ListItem title = { t ( "Metadata.documentation" ) } >
53- { documentation || "--" }
54- </ ListItem >
55- < ListItem title = { t ( "Metadata.temporalCoverageStart" ) } >
56- { temporalStart || "--" }
70+ < ListItem title = { t ( "Metadata.issued" ) } >
71+ { issued ? formatDate ( issued ?? "" , "dd/MM/yyy" ) : "--" }
5772 </ ListItem >
58- < ListItem title = { t ( "Metadata.temporalCoverageEnd" ) } >
59- { temporalEnd || "--" }
60- </ ListItem >
61- { /*
62- <ListItem title={t("Common.updated")}>
63- {formatDate(dataset.metadata_modified ?? "", "dd/MM/yyy, hh:ss")}
64- </ListItem>
65- <ListItem title={t("Common.created")}>
66- {formatDate(dataset.metadata_created ?? "", "dd/MM/yyy, hh:ss")}
73+ < ListItem title = { t ( "Metadata.conformsTo" ) } >
74+ { conformsTo ? < Link
75+ className = "underline text-theme-green hover:text-theme-green-900 flex items-center justify-end gap-2"
76+ href = { conformsTo }
77+ target = "_blank"
78+ >
79+ { t ( "Common.visit" ) } < ExternalLink size = { 16 } />
80+ </ Link > : "--" }
6781 </ ListItem >
68- <ListItem title={t("Common.groups")}>
69- {dataset.groups?.map((g, i) => (
70- <React.Fragment key={g.id}>
71- <Link className="underline " href={`/search?groups=${g.name}`}>
72- {g.display_name}
73- </Link>
74- {i < (dataset?.groups ?? [])?.length - 1 ? ", " : ""}
75- </React.Fragment>
76- ))}
77- </ListItem>*/ }
78-
79-
8082 </ div >
8183 ) ;
8284}
0 commit comments