diff --git a/packages/client/src/components/DatasetTable.component.tsx b/packages/client/src/components/DatasetTable.component.tsx index e6944ce9..f2ef5c46 100644 --- a/packages/client/src/components/DatasetTable.component.tsx +++ b/packages/client/src/components/DatasetTable.component.tsx @@ -1,7 +1,7 @@ import { DataGrid, GridColDef } from '@mui/x-data-grid'; import { useState, useEffect } from 'react'; import { Dataset, Entry } from '../graphql/graphql'; -import { useEntryForDatasetQuery } from '../graphql/entry/entry'; +import { useEntryForDatasetLazyQuery } from '../graphql/entry/entry'; import { EntryView } from './EntryView.component'; export interface DatasetTableProps { @@ -28,14 +28,18 @@ export const DatasetTable: React.FC = (props) => { const [entries, setEntries] = useState([]); const columns = [...defaultColumns, ...(props.additionalColumns ?? [])]; - const entryForDatasetResult = useEntryForDatasetQuery({ variables: { dataset: props.dataset._id } }); + const [entryForDataset, entryForDatasetResult] = useEntryForDatasetLazyQuery(); + + useEffect(() => { + entryForDataset({ variables: { dataset: props.dataset._id }, fetchPolicy: 'network-only' }); + }, [props.dataset]); // TODO: Add in logic to re-fetch data when the presigned URL expires useEffect(() => { if (entryForDatasetResult.data) { setEntries(entryForDatasetResult.data.entryForDataset); } - }, [entryForDatasetResult.data]); + }, [entryForDatasetResult]); return ( = ({ datasets, additional - + {/* provide new dataset object to allow DatasetTable to refetch entries after entries are updated */} + ))}