import path from 'path'
import Head from 'next/head'
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(), "fixtures", "datasetsDoubleView")
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}
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}
)
})}
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'
)}
)
}
export async function getStaticProps() {
if (!datasetsDirectory) {
return { props: {} }
}
const dataset = await getDataset(datasetsDirectory)
const datasetWithViews = addView(dataset)
return datasetWithViews
}