From 7406cdbed1f879d6c754a0cf087560966278f103 Mon Sep 17 00:00:00 2001 From: Akosah Date: Tue, 30 Jan 2024 11:51:16 -0500 Subject: [PATCH 1/5] show sidebar at full length --- packages/client/src/components/SideBar.component.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/client/src/components/SideBar.component.tsx b/packages/client/src/components/SideBar.component.tsx index cd025dd7..2fb14419 100644 --- a/packages/client/src/components/SideBar.component.tsx +++ b/packages/client/src/components/SideBar.component.tsx @@ -51,6 +51,7 @@ export const SideBar: FC = ({ open, drawerWidth }) => { { name: 'New Study', action: () => navigate('/study/new'), visible: (p) => p!.projectAdmin }, { name: 'Study Control', action: () => navigate('/study/controls'), visible: (p) => p!.projectAdmin }, { name: 'User Permissions', action: () => navigate('/study/permissions'), visible: (p) => p!.studyAdmin }, + { name: 'Entry Controls', action: () => navigate('/study/controls'), visible: (p) => p!.studyAdmin }, { name: 'Entry Controls', action: () => navigate('/study/entries'), visible: (p) => p!.studyAdmin }, { name: 'Download Tags', action: () => navigate('/study/tags'), visible: (p) => p!.studyAdmin } ] @@ -96,7 +97,8 @@ export const SideBar: FC = ({ open, drawerWidth }) => { backgroundColor: '#103F68', color: 'white', paddingTop: 2, - mt: '64px' + mt: '64px', + paddingBottom: 10 } }} anchor="left" From 2e7197ddd925e1715d4517e3f4f83a6161cfd799 Mon Sep 17 00:00:00 2001 From: Akosah Date: Tue, 30 Jan 2024 14:50:00 -0500 Subject: [PATCH 2/5] work in progres --- .../src/components/DatasetTable.component.tsx | 19 ++++++++++++++++--- .../src/components/DatasetsView.component.tsx | 2 ++ .../src/components/SideBar.component.tsx | 1 - .../src/pages/datasets/DatasetControls.tsx | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/client/src/components/DatasetTable.component.tsx b/packages/client/src/components/DatasetTable.component.tsx index e6944ce9..4f3201e3 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, useEntryForDatasetQuery } from '../graphql/entry/entry'; import { EntryView } from './EntryView.component'; export interface DatasetTableProps { @@ -28,14 +28,27 @@ 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(); + // const entryForDatasetResult = useEntryForDatasetQuery({ + // variables: { dataset: props.dataset._id }, + // fetchPolicy: 'network-only' + // }); + console.log('rendering DatasetTable'); + + useEffect(() => { + console.log('refetching entryForDataset'); + 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(() => { + console.log('resseting entryForDatasetResult', entryForDatasetResult.data); + if (entryForDatasetResult.data) { + console.log('new emtries', entryForDatasetResult.data.entryForDataset); setEntries(entryForDatasetResult.data.entryForDataset); } - }, [entryForDatasetResult.data]); + }, [entryForDatasetResult]); return ( = ({ datasets, additionalColumns }) => { + console.log('rendering DatasetsView'); + return ( <> {datasets.map((dataset: Dataset) => ( diff --git a/packages/client/src/components/SideBar.component.tsx b/packages/client/src/components/SideBar.component.tsx index 2fb14419..6633cb2c 100644 --- a/packages/client/src/components/SideBar.component.tsx +++ b/packages/client/src/components/SideBar.component.tsx @@ -51,7 +51,6 @@ export const SideBar: FC = ({ open, drawerWidth }) => { { name: 'New Study', action: () => navigate('/study/new'), visible: (p) => p!.projectAdmin }, { name: 'Study Control', action: () => navigate('/study/controls'), visible: (p) => p!.projectAdmin }, { name: 'User Permissions', action: () => navigate('/study/permissions'), visible: (p) => p!.studyAdmin }, - { name: 'Entry Controls', action: () => navigate('/study/controls'), visible: (p) => p!.studyAdmin }, { name: 'Entry Controls', action: () => navigate('/study/entries'), visible: (p) => p!.studyAdmin }, { name: 'Download Tags', action: () => navigate('/study/tags'), visible: (p) => p!.studyAdmin } ] diff --git a/packages/client/src/pages/datasets/DatasetControls.tsx b/packages/client/src/pages/datasets/DatasetControls.tsx index 44164ab5..195ec299 100644 --- a/packages/client/src/pages/datasets/DatasetControls.tsx +++ b/packages/client/src/pages/datasets/DatasetControls.tsx @@ -60,7 +60,7 @@ export const DatasetControls: React.FC = () => { //TODO show error with snackbar } else if (res.data) { // force rerender - setDatasets([...datasets]); + setDatasets([...datasets, {} as Dataset]); } }, onCancel: () => {} From 60846a0fd0c6c4ed1b80b62a1a219b9e35b90d14 Mon Sep 17 00:00:00 2001 From: Akosah Date: Tue, 30 Jan 2024 16:13:23 -0500 Subject: [PATCH 3/5] update on delete --- .../client/src/components/DatasetTable.component.tsx | 11 +---------- .../client/src/components/DatasetsView.component.tsx | 5 +++-- .../client/src/pages/datasets/DatasetControls.tsx | 2 +- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/packages/client/src/components/DatasetTable.component.tsx b/packages/client/src/components/DatasetTable.component.tsx index 4f3201e3..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 { useEntryForDatasetLazyQuery, useEntryForDatasetQuery } from '../graphql/entry/entry'; +import { useEntryForDatasetLazyQuery } from '../graphql/entry/entry'; import { EntryView } from './EntryView.component'; export interface DatasetTableProps { @@ -29,23 +29,14 @@ export const DatasetTable: React.FC = (props) => { const columns = [...defaultColumns, ...(props.additionalColumns ?? [])]; const [entryForDataset, entryForDatasetResult] = useEntryForDatasetLazyQuery(); - // const entryForDatasetResult = useEntryForDatasetQuery({ - // variables: { dataset: props.dataset._id }, - // fetchPolicy: 'network-only' - // }); - console.log('rendering DatasetTable'); useEffect(() => { - console.log('refetching entryForDataset'); 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(() => { - console.log('resseting entryForDatasetResult', entryForDatasetResult.data); - if (entryForDatasetResult.data) { - console.log('new emtries', entryForDatasetResult.data.entryForDataset); setEntries(entryForDatasetResult.data.entryForDataset); } }, [entryForDatasetResult]); diff --git a/packages/client/src/components/DatasetsView.component.tsx b/packages/client/src/components/DatasetsView.component.tsx index 650a0f47..aa408cd3 100644 --- a/packages/client/src/components/DatasetsView.component.tsx +++ b/packages/client/src/components/DatasetsView.component.tsx @@ -12,7 +12,7 @@ export interface DatasetsViewProps { // TODO: Implement lazy loading on accordion open to prevent loading all datasets at once export const DatasetsView: React.FC = ({ datasets, additionalColumns }) => { console.log('rendering DatasetsView'); - + return ( <> {datasets.map((dataset: Dataset) => ( @@ -24,7 +24,8 @@ export const DatasetsView: React.FC = ({ datasets, additional - + {/* provide new dataset object to allow DatasetTable to refetch entries after entries are updated */} + ))} diff --git a/packages/client/src/pages/datasets/DatasetControls.tsx b/packages/client/src/pages/datasets/DatasetControls.tsx index 195ec299..44164ab5 100644 --- a/packages/client/src/pages/datasets/DatasetControls.tsx +++ b/packages/client/src/pages/datasets/DatasetControls.tsx @@ -60,7 +60,7 @@ export const DatasetControls: React.FC = () => { //TODO show error with snackbar } else if (res.data) { // force rerender - setDatasets([...datasets, {} as Dataset]); + setDatasets([...datasets]); } }, onCancel: () => {} From be0d65187a97e80c8cf187a73047de1159e797eb Mon Sep 17 00:00:00 2001 From: Akosah Date: Wed, 31 Jan 2024 12:54:55 -0500 Subject: [PATCH 4/5] remove unused files --- .../customRenderes/AslLexSearchControl.tsx | 41 ------------------- 1 file changed, 41 deletions(-) delete mode 100644 packages/client/src/jsonForms/customRenderes/AslLexSearchControl.tsx diff --git a/packages/client/src/jsonForms/customRenderes/AslLexSearchControl.tsx b/packages/client/src/jsonForms/customRenderes/AslLexSearchControl.tsx deleted file mode 100644 index a9c3ec59..00000000 --- a/packages/client/src/jsonForms/customRenderes/AslLexSearchControl.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { withJsonFormsControlProps } from '@jsonforms/react'; -import { TextSearch, SearchResults } from '@bu-sail/saas-view'; -import { useState } from 'react'; -import { LexiconEntry } from '../../graphql/graphql'; - -interface AslLexSearchControlProps { - data: any; - handleChange(path: string, value: any): void; - path: string; -} - -function getAslLexCode(aslLexObject: any) { - return aslLexObject.key ? aslLexObject.key : ''; -} - -const width = 300; -const aslLexicon = { _id: import.meta.env.VITE_ASL_LEXICON_ID, name: import.meta.env.VITE_NAME, schema: {} }; - -const AslLexSearchControl = ({ handleChange, path }: AslLexSearchControlProps) => { - const [searchResults, setSearchResults] = useState([]); - const [value, setValue] = useState(null); - - return ( - <> - - {searchResults.length > 0 && ( - { - setValue(entry); - handleChange(path, getAslLexCode(entry)); - }} - width={width} - /> - )} - - ); -}; - -export default withJsonFormsControlProps(AslLexSearchControl); From ba43db8f5a3be7530209d3756b8ba0b34ee8a57f Mon Sep 17 00:00:00 2001 From: Akosah Date: Wed, 31 Jan 2024 12:56:01 -0500 Subject: [PATCH 5/5] undo unecessary changes --- packages/client/src/components/SideBar.component.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/src/components/SideBar.component.tsx b/packages/client/src/components/SideBar.component.tsx index 6633cb2c..c43eb55f 100644 --- a/packages/client/src/components/SideBar.component.tsx +++ b/packages/client/src/components/SideBar.component.tsx @@ -96,8 +96,8 @@ export const SideBar: FC = ({ open, drawerWidth }) => { backgroundColor: '#103F68', color: 'white', paddingTop: 2, - mt: '64px', - paddingBottom: 10 + paddingBottom: 10, + mt: '64px' } }} anchor="left"