diff --git a/components/dataset/About.tsx b/components/dataset/About.tsx index 7f166e38..52ebb01e 100644 --- a/components/dataset/About.tsx +++ b/components/dataset/About.tsx @@ -1,35 +1,36 @@ import { useQuery } from '@apollo/react-hooks'; -import ErrorMessage from '../Error'; +import { Table, ErrorMessage } from '../_shared'; import { GET_DATAPACKAGE_QUERY } from '../../graphql/queries'; const columns = [ { name: 'Files', + key: 'files', render: ({ resources }) => (resources && resources.length) || 0, }, { name: 'Size', - render: ({ size }) => size || 'N/A', + key: 'size', }, { name: 'Format', - render: () => null, + key: 'format', }, { name: 'Created', - render: ({ metadata_created: created }) => created || 'N/A', + key: 'metadata_created', }, { name: 'Updated', - render: ({ metadata_modified: updated }) => updated || 'N/A', + key: 'metadata_modified', }, { name: 'License', - render: () => null, + key: 'license', }, { name: 'Source', - render: () => null, + key: 'source', }, ]; @@ -46,28 +47,5 @@ export default function About({ variables }) { if (loading) return
Loading
; const { result } = data.dataset; - return ( - <> - - - - {columns.map(({ name }) => ( - - ))} - - - - - {columns.map(({ name, render }) => ( - - ))} - - -
- {name} -
- {render(result)} -
- - ); + return ; } diff --git a/components/dataset/Resources.tsx b/components/dataset/Resources.tsx index d44b65f8..f42c70ef 100644 --- a/components/dataset/Resources.tsx +++ b/components/dataset/Resources.tsx @@ -1,38 +1,41 @@ import Link from 'next/link'; import { useQuery } from '@apollo/react-hooks'; -import ErrorMessage from '../Error'; +import { Table, ErrorMessage } from '../_shared'; import { GET_RESOURCES_QUERY } from '../../graphql/queries'; const columns = [ { name: 'File', - render: ({ name: resName, title }, { name }) => ( - + key: 'file', + render: ({ name: resName, title, parentName }) => ( + {title || resName} ), }, { name: 'Format', - render: ({ format }) => format, + key: 'format', }, { name: 'Created', - render: ({ created }) => created, + key: 'created', }, { name: 'Updated', - render: ({ last_modified }) => last_modified, + key: 'last_modified', }, { name: 'Link', - render: ({ name }, { name: resName }) => ( - + key: 'link', + render: ({ name: resName, parentName }) => ( + Preview ), }, ]; + export default function Resources({ variables }) { const { loading, error, data } = useQuery(GET_RESOURCES_QUERY, { variables, @@ -50,27 +53,13 @@ export default function Resources({ variables }) { return ( <>

Data Files

-
- - - {columns.map(({ name }) => ( - - ))} - - - - {/* Do not use array index as key */} - {result.resources.map((resource) => ( - - {columns.map(({ name, render }) => ( - - ))} - - ))} - -
{name}
- {render(resource, result)} -
+ ({ + ...resource, + parentName: result.name, + }))} + /> ); } diff --git a/components/resource/About.tsx b/components/resource/About.tsx index 1faebe39..4968c073 100644 --- a/components/resource/About.tsx +++ b/components/resource/About.tsx @@ -1,5 +1,5 @@ import { useQuery } from '@apollo/react-hooks'; -import ErrorMessage from '../Error'; +import { Table, ErrorMessage } from '../_shared'; import { GET_RESOURCES_QUERY } from '../../graphql/queries'; const columns = [ @@ -64,29 +64,5 @@ export default function About({ variables }) { const resource = result.resources.find( (item) => item.name === variables.resource ); - return ( - <> -
- - - {columns.map(({ key, name }) => ( - - ))} - - - - - {columns.map(({ key, render }) => ( - - ))} - - -
- {name} -
- {(render && typeof render === 'function' && render(resource)) || - resource[key]} -
- - ); + return ; }