import { useQuery } from '@apollo/react-hooks'; import * as timeago from 'timeago.js'; import { ErrorMessage } from '../_shared'; import { GET_DATASET_QUERY } from '../../graphql/queries'; const About: React.FC<{ variables: any }> = ({ variables }) => { const { loading, error, data } = useQuery(GET_DATASET_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; const stats = [ { name: 'Files', stat: result.resources.length }, { name: 'Size', stat: result.size || 'N/A' }, { name: 'Formats', stat: result.resources.map((item) => item.format).join(', '), }, { name: 'Created', stat: result.created && timeago.format(result.created), }, { name: 'Updated', stat: result.updated && timeago.format(result.updated), }, { name: 'Licenses', stat: result.licenses?.length ? result.licenses.map((item, index) => ( {item.name} )) : 'N/A', }, ]; return ( <>

{result.title || result.name}

{result.description || 'This dataset does not have a description.'}

{stats.map((item) => (
{item.name}
{item.stat}
))}
); }; export default About;