import path from 'path' import Head from 'next/head' import Link from 'next/link' import Table from '../components/Table' import filesize from 'filesize' import { Vega } from 'react-vega'; import { getDataset } from '../lib/dataset' import Chart from '../components/Chart' import { addView } from '../lib/utils' const datasetsDirectory = process.env.PORTAL_DATASET_PATH || path.join(process.cwd(), "public", "dataset") export default function Home({ dataset, specs }) { if (!dataset && !specs) { return (
Dataset

No dataset found in path

) } const descriptor = dataset['descriptor'] const resources = dataset['resources'] let datasetSize = 0 if (resources) { datasetSize = resources.length == 1 ? resources[0].size : resources.reduce((accumulator, currentValue) => { return accumulator.size + currentValue.size }) } return (
Dataset

{descriptor.title}

Key info

Files

Size

Format

Created

Updated

Licence

Source

{resources.length}

{filesize(datasetSize, { bits: true })}

{resources[0].format} zip

{descriptor.created}

{descriptor.updated}

{descriptor.license}

{descriptor.sources[0].title}

Data Files

File

Description

Size

Last Changed

Download

{resources.map((resource, index) => { return (

{resource.name}

{resource.description || "No description"}

{filesize(resource.size, { bits: true })}

{resource.updated}

{resource.format} ({filesize(resource.size, { bits: true })})

) })}

Graph

{!specs || Object.keys(specs).length == 0 ? (

No graph to display

) : ( Object.values(JSON.parse(specs)).map((spec, i) => { if (spec.specType == "vega") { return (
) } else if (["simple", "plotly"].includes(spec.specType)) { return (
) } else { return

Cannot display view

} }) )}

Data Preview

{descriptor.title}

{resources[0].sample ? ( ) : ( 'No preview is available for this dataset' )}

README

) } export async function getStaticProps() { if (!datasetsDirectory) { return { props: {} } } const dataset = await getDataset(datasetsDirectory) const datasetWithViews = addView(dataset) return datasetWithViews }