import Link from 'next/link'; import { useQuery } from '@apollo/react-hooks'; import ErrorMessage from '../Error'; import { GET_RESOURCES_QUERY } from '../../graphql/queries'; const columns = [ { name: 'File', render: ({ name: resName, title }, { name }) => ( {title || resName} ), }, { name: 'Format', render: ({ format }) => format, }, { name: 'Created', render: ({ created }) => created, }, { name: 'Updated', render: ({ last_modified }) => last_modified, }, { name: 'Link', render: ({ name }, { name: resName }) => ( Preview ), }, ]; export default function Resources({ variables }) { const { loading, error, data } = useQuery(GET_RESOURCES_QUERY, { variables, // Setting this value to true will make the component rerender when // the "networkStatus" changes, so we are able to know if it is fetching // more data notifyOnNetworkStatusChange: true, }); if (error) return ; if (loading) return
Loading
; const { result } = data.dataset; 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)}
); }