import Head from "next/head";
import { CKAN, Dataset } from "@portaljs/ckan";
import {
ChevronRightIcon,
HomeIcon,
PaperClipIcon,
} from "@heroicons/react/20/solid";
import Link from "next/link";
import getConfig from "next/config";
const backend_url = getConfig().publicRuntimeConfig.DMS
export const getServerSideProps = async (context: any) => {
try {
const datasetName = context.params?.dataset;
if (!datasetName) {
return {
notFound: true,
};
}
const ckan = new CKAN(backend_url);
const dataset = await ckan.getDatasetDetails(datasetName as string);
if (!dataset) {
return {
notFound: true,
};
}
return {
props: { dataset },
};
} catch {
return {
notFound: true,
};
}
};
export default function DatasetPage({
dataset,
}: {
dataset: Dataset;
}): JSX.Element {
return (
<>
{`${dataset.title || dataset.name} - Dataset`}
{dataset && (
{dataset.title || dataset.name}
Dataset details
-
Title
-
{dataset.title}
{dataset.tags && dataset.tags.length > 0 && (
-
Tags
-
{dataset.tags.map((tag) => tag.display_name).join(", ")}
)}
{dataset.tags && dataset.tags.length > 0 && (
-
URL
-
{dataset.url}
)}
{dataset.notes && (
<>
-
Description
-
{dataset.notes}
>
)}
-
Files
-
{dataset.resources.map((resource) => (
-
{resource.name || resource.id}
{resource.size}
))}
)}
>
);
}