Skip to content

Commit 0d7888b

Browse files
committed
Pass groups as props in dataset manager
1 parent 5099618 commit 0d7888b

3 files changed

Lines changed: 22 additions & 36 deletions

File tree

frontend/packages/@depmap/dataset-manager/src/components/DatasetEditForm.tsx

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import Form from "@rjsf/core";
1515

1616
interface DatasetEditFormProps {
1717
getDataTypesAndPriorities: () => Promise<InvalidPrioritiesByDataType>;
18-
getGroups: () => Promise<Group[]>;
18+
groups: Group[];
1919
datasetToEdit: Dataset;
2020
onSubmit: (
2121
datasetId: string,
@@ -41,12 +41,7 @@ const uiSchema: UiSchema = {
4141
};
4242

4343
export default function DatasetForm(props: DatasetEditFormProps) {
44-
const {
45-
getDataTypesAndPriorities,
46-
getGroups,
47-
datasetToEdit,
48-
onSubmit,
49-
} = props;
44+
const { getDataTypesAndPriorities, groups, datasetToEdit, onSubmit } = props;
5045

5146
const [schema, setSchema] = useState<RJSFSchema | null>(null);
5247
const [formDataVals, setFormDataVals] = useState<any>(null);
@@ -57,10 +52,7 @@ export default function DatasetForm(props: DatasetEditFormProps) {
5752
useEffect(() => {
5853
(async () => {
5954
try {
60-
const [dataTypesPriorities, groups] = await Promise.all([
61-
getDataTypesAndPriorities(),
62-
getGroups(),
63-
]);
55+
const dataTypesPriorities = await getDataTypesAndPriorities();
6456

6557
const dataTypeOptions = Object.keys(dataTypesPriorities).map(
6658
(dType) => {
@@ -116,7 +108,7 @@ export default function DatasetForm(props: DatasetEditFormProps) {
116108
console.error(e);
117109
}
118110
})();
119-
}, [getGroups, getDataTypesAndPriorities, datasetToEdit]);
111+
}, [groups, getDataTypesAndPriorities, datasetToEdit]);
120112

121113
return schema && formDataVals ? (
122114
<Form

frontend/packages/@depmap/dataset-manager/src/components/DatasetForm.tsx

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import styles from "../styles/styles.scss";
2626
interface DatasetFormProps {
2727
getDimensionTypes: () => Promise<DimensionType[]>;
2828
getDataTypesAndPriorities: () => Promise<InvalidPrioritiesByDataType>;
29-
getGroups: () => Promise<Group[]>;
29+
groups: Group[];
3030
uploadFile: (fileArgs: { file: File | Blob }) => Promise<UploadFileResponse>;
3131
uploadDataset: (datasetParams: DatasetParams) => Promise<any>;
3232
getTaskStatus: (taskIds: string) => Promise<CeleryTask>;
@@ -37,7 +37,7 @@ interface DatasetFormProps {
3737
export default function DatasetForm(props: DatasetFormProps) {
3838
const {
3939
getDimensionTypes,
40-
getGroups,
40+
groups,
4141
getDataTypesAndPriorities,
4242
uploadFile,
4343
uploadDataset,
@@ -110,7 +110,6 @@ export default function DatasetForm(props: DatasetFormProps) {
110110
const [sampleTypeOptions, setSampleTypesOptions] = useState<
111111
SampleDimensionType[]
112112
>([]);
113-
const [groupOptions, setGroupsOptions] = useState<Group[]>([]);
114113
const [
115114
invalidPrioritiesByDataType,
116115
setInvalidPrioritiesByDataType,
@@ -128,14 +127,9 @@ export default function DatasetForm(props: DatasetFormProps) {
128127
useEffect(() => {
129128
(async () => {
130129
try {
131-
const [
132-
dataTypesPriorities,
133-
dimensionTypes,
134-
groups,
135-
] = await Promise.all([
130+
const [dataTypesPriorities, dimensionTypes] = await Promise.all([
136131
getDataTypesAndPriorities(),
137132
getDimensionTypes(),
138-
getGroups(),
139133
]);
140134

141135
const dataTypes = Object.keys(dataTypesPriorities).map((dType) => {
@@ -153,12 +147,11 @@ export default function DatasetForm(props: DatasetFormProps) {
153147
setDataTypeOptions(dataTypes);
154148
setFeatureTypesOptions(featureTypes);
155149
setSampleTypesOptions(sampleTypes);
156-
setGroupsOptions(groups);
157150
} catch (e) {
158151
console.error(e);
159152
}
160153
})();
161-
}, [getDimensionTypes, getGroups, getDataTypesAndPriorities]);
154+
}, [getDimensionTypes, groups, getDataTypesAndPriorities]);
162155

163156
/**
164157
checkStatus and reject functions influenced by ProgressTracker.tsx
@@ -309,7 +302,7 @@ export default function DatasetForm(props: DatasetFormProps) {
309302
<MatrixDatasetForm
310303
featureTypes={featureTypeOptions}
311304
sampleTypes={sampleTypeOptions}
312-
groups={groupOptions}
305+
groups={groups}
313306
dataTypes={dataTypeOptions}
314307
invalidDataTypePriorities={invalidPrioritiesByDataType}
315308
initFormData={formContent.matrix}
@@ -336,7 +329,7 @@ export default function DatasetForm(props: DatasetFormProps) {
336329
<>
337330
<TableDatasetForm
338331
dimensionTypes={dimensionTypeOptions}
339-
groups={groupOptions}
332+
groups={groups}
340333
dataTypes={dataTypeOptions}
341334
invalidDataTypePriorities={invalidPrioritiesByDataType}
342335
initFormData={formContent.table}
@@ -363,7 +356,7 @@ export default function DatasetForm(props: DatasetFormProps) {
363356
reject,
364357
featureTypeOptions,
365358
sampleTypeOptions,
366-
groupOptions,
359+
groups,
367360
dataTypeOptions,
368361
invalidPrioritiesByDataType,
369362
formContent,

frontend/packages/@depmap/dataset-manager/src/components/index.tsx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
// instanceOfErrorDetail,
88
DimensionTypeAddArgs,
99
DimensionTypeUpdateArgs,
10+
Group,
1011
instanceOfErrorDetail,
1112
} from "@depmap/types";
1213

@@ -26,6 +27,7 @@ export default function Datasets() {
2627
const { getApi } = useContext(ApiContext);
2728
const [dapi] = useState(() => getApi());
2829
const [datasets, setDatasets] = useState<Dataset[] | null>(null);
30+
const [groups, setGroups] = useState<Group[]>(null);
2931

3032
const [initError, setInitError] = useState(false);
3133

@@ -52,10 +54,7 @@ export default function Datasets() {
5254
dapi.updateDimensionType(dimTypeName, dimTypeArgs),
5355
[dapi]
5456
);
55-
const getGroups = useCallback(() => dapi.getGroups(!isAdvancedMode), [
56-
dapi,
57-
isAdvancedMode,
58-
]); // write access set to true if not advanced mode
57+
5958
const getDataTypesAndPriorities = useCallback(
6059
() => dapi.getDataTypesAndPriorities(),
6160
[dapi]
@@ -126,10 +125,12 @@ export default function Datasets() {
126125
(async () => {
127126
try {
128127
let currentDatasets = await dapi.getBreadboxDatasets();
128+
// write access set to true if not advanced mode
129+
const userGroups = await dapi.getGroups(!isAdvancedMode);
130+
setGroups(userGroups);
129131

130132
if (!isAdvancedMode) {
131-
const writeGroups = await dapi.getGroups(!isAdvancedMode);
132-
const group_ids = writeGroups.map((group) => {
133+
const group_ids = userGroups.map((group) => {
133134
return group.id;
134135
});
135136
currentDatasets = currentDatasets.filter((dataset) =>
@@ -159,7 +160,7 @@ export default function Datasets() {
159160
setInitError(true);
160161
}
161162
})();
162-
}, [dapi, getDimensionTypes, getGroups, isAdvancedMode]);
163+
}, [dapi, getDimensionTypes, isAdvancedMode]);
163164

164165
const datasetForm = useCallback(() => {
165166
if (datasets) {
@@ -170,7 +171,7 @@ export default function Datasets() {
170171
formTitle = "Edit Dataset";
171172
datasetFormComponent = (
172173
<DatasetEditForm
173-
getGroups={getGroups}
174+
groups={groups}
174175
getDataTypesAndPriorities={getDataTypesAndPriorities}
175176
onSubmit={async (
176177
datasetId: string,
@@ -200,7 +201,7 @@ export default function Datasets() {
200201
datasetFormComponent = (
201202
<DatasetForm
202203
getDimensionTypes={getDimensionTypes}
203-
getGroups={getGroups}
204+
groups={groups}
204205
getDataTypesAndPriorities={getDataTypesAndPriorities}
205206
uploadFile={postFileUpload}
206207
uploadDataset={postDatasetUpload}
@@ -243,7 +244,7 @@ export default function Datasets() {
243244
isEditDatasetMode,
244245
datasetToEdit,
245246
showDatasetModal,
246-
getGroups,
247+
groups,
247248
getDataTypesAndPriorities,
248249
updateDataset,
249250
getDimensionTypes,

0 commit comments

Comments
 (0)