Skip to content

Commit 140293a

Browse files
committed
Disable upload dataset button if user has no write groups
1 parent 0d7888b commit 140293a

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

  • frontend/packages/@depmap/dataset-manager/src/components

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

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ export default function Datasets() {
2727
const { getApi } = useContext(ApiContext);
2828
const [dapi] = useState(() => getApi());
2929
const [datasets, setDatasets] = useState<Dataset[] | null>(null);
30-
const [groups, setGroups] = useState<Group[]>(null);
30+
const [userGroups, setUserGroups] = useState<{
31+
availableGroups: Group[];
32+
writeGroups: Group[];
33+
}>({ availableGroups: [], writeGroups: [] });
3134

3235
const [initError, setInitError] = useState(false);
3336

@@ -125,17 +128,20 @@ export default function Datasets() {
125128
(async () => {
126129
try {
127130
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);
131131

132+
// write access set to true if not advanced mode
133+
const availableGroups = await dapi.getGroups(!isAdvancedMode);
132134
if (!isAdvancedMode) {
133-
const group_ids = userGroups.map((group) => {
135+
const group_ids = availableGroups.map((group) => {
134136
return group.id;
135137
});
136138
currentDatasets = currentDatasets.filter((dataset) =>
137139
group_ids.includes(dataset.group_id)
138140
);
141+
setUserGroups({ availableGroups, writeGroups: availableGroups });
142+
} else {
143+
const writeGroups = await dapi.getGroups(true);
144+
setUserGroups({ availableGroups, writeGroups });
139145
}
140146

141147
setDatasets(currentDatasets);
@@ -171,7 +177,7 @@ export default function Datasets() {
171177
formTitle = "Edit Dataset";
172178
datasetFormComponent = (
173179
<DatasetEditForm
174-
groups={groups}
180+
groups={userGroups.availableGroups}
175181
getDataTypesAndPriorities={getDataTypesAndPriorities}
176182
onSubmit={async (
177183
datasetId: string,
@@ -201,7 +207,7 @@ export default function Datasets() {
201207
datasetFormComponent = (
202208
<DatasetForm
203209
getDimensionTypes={getDimensionTypes}
204-
groups={groups}
210+
groups={userGroups.availableGroups}
205211
getDataTypesAndPriorities={getDataTypesAndPriorities}
206212
uploadFile={postFileUpload}
207213
uploadDataset={postDatasetUpload}
@@ -244,7 +250,7 @@ export default function Datasets() {
244250
isEditDatasetMode,
245251
datasetToEdit,
246252
showDatasetModal,
247-
groups,
253+
userGroups.availableGroups,
248254
getDataTypesAndPriorities,
249255
updateDataset,
250256
getDimensionTypes,
@@ -476,7 +482,11 @@ export default function Datasets() {
476482
]}
477483
/>
478484
<div className={styles.primaryButtons}>
479-
<Button bsStyle="primary" onClick={() => setShowDatasetModal(true)}>
485+
<Button
486+
bsStyle="primary"
487+
onClick={() => setShowDatasetModal(true)}
488+
disabled={userGroups.writeGroups.length === 0}
489+
>
480490
Upload New Dataset
481491
</Button>
482492
<Button

0 commit comments

Comments
 (0)