Skip to content

Commit 4664d31

Browse files
authored
[FIX] show meta analyses after creation (#691)
* show empty list when no ids * work with and update meta_analyses
1 parent f32793d commit 4664d31

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

compose/neurosynth-frontend/src/components/Dialogs/CreateMetaAnalysisSpecificationDialog/CreateMetaAnalysisSpecificationReview/CreateMetaAnalysisSpecificationReview.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import {
1414
useProjectExtractionAnnotationId,
1515
useProjectExtractionStudysetId,
1616
useProjectId,
17+
useProjectMetaAnalyses,
18+
useUpdateProjectMetaAnalyses,
1719
} from 'pages/Projects/ProjectPage/ProjectStore';
1820
import { useMemo } from 'react';
1921
import { useHistory } from 'react-router-dom';
@@ -43,6 +45,9 @@ const CreateMetaAnalysisSpecificationReview: React.FC<{
4345
const { data: annotations } = useGetAnnotationById(annotationId);
4446
const { createMetaAnalysis, isLoading, isError } = useCreateAlgorithmSpecification();
4547
const { enqueueSnackbar } = useSnackbar();
48+
const projectMetaAnalyses = useProjectMetaAnalyses() || [];
49+
const updateProjectMetaAnalyses = useUpdateProjectMetaAnalyses();
50+
4651
// TODO: implement studyset snapshot
4752
// const [showAdvanced, setShowAdvanced] = useState(false);
4853

@@ -74,9 +79,18 @@ const CreateMetaAnalysisSpecificationReview: React.FC<{
7479
if (!metaAnalysis.data.specification || !metaAnalysis.data.id)
7580
throw new Error('no specification ID found when creating a meta-analysis');
7681

82+
// Ensure that metaAnalysis.data.id is a string
83+
if (typeof metaAnalysis.data.id !== 'string') {
84+
throw new Error('metaAnalysis.data.id must be a string');
85+
}
86+
const updatedMetaAnalyses = [...projectMetaAnalyses, metaAnalysis.data.id] as string[];
87+
// Update the project meta analyses
88+
updateProjectMetaAnalyses(updatedMetaAnalyses);
89+
7790
enqueueSnackbar('created meta analysis specification successfully', {
7891
variant: 'success',
7992
});
93+
8094
history.push(`/projects/${projectId}/meta-analyses/${metaAnalysis.data.id}`);
8195
};
8296

compose/neurosynth-frontend/src/pages/Projects/ProjectPage/ProjectStore.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export type ProjectStoreActions = {
6666
updateProjectName: (name: string) => void;
6767
updateProjectDescription: (description: string) => void;
6868
initProjectStore: (project: INeurosynthProjectReturn | undefined) => void;
69+
updateProjectMetaAnalyses: (meta_analyses: string[]) => void;
6970
updateProjectMetadata: (metadata: Partial<ProjectStoreMetadata>) => void;
7071
clearProjectStore: () => void;
7172
initCuration: (cols: string[], isPrisma: boolean) => void;
@@ -198,6 +199,12 @@ const useProjectStore = create<TProjectStore>()((set, get) => {
198199
created_at: res.data.created_at,
199200
}));
200201
},
202+
updateProjectMetaAnalyses: (meta_analyses: string[]) => {
203+
set((state) => ({
204+
...state,
205+
meta_analyses: meta_analyses,
206+
}));
207+
},
201208
updateProjectInDBDebounced: () => {
202209
const updateProject = get().metadata.updateProject;
203210
if (!updateProject) return;
@@ -881,6 +888,8 @@ export const useProjectExtractionSetGivenStudyStatusesAsComplete = () =>
881888
// metaAnalysisAlgorithm updater hooks
882889
export const useAllowEditMetaAnalyses = () =>
883890
useProjectStore((state) => state.allowEditMetaAnalyses);
891+
export const useUpdateProjectMetaAnalyses = () =>
892+
useProjectStore((state) => state.updateProjectMetaAnalyses);
884893

885894
// metaAnalysisAlgorithm retrieval hooks
886895
export const useProjectMetaAnalysisCanEdit = () =>

0 commit comments

Comments
 (0)