Skip to content

Commit 924c38f

Browse files
authored
Fix actions on a del marker in object list view (#3134)
1 parent e4d5f96 commit 924c38f

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

portal-ui/.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
build
22
coverage
3+
.nyc_output

portal-ui/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ find-deadcode:
2020
./check-deadcode.sh
2121

2222
prettify:
23-
yarn prettier --write . --loglevel warn
23+
yarn prettier --write . --log-level warn
2424

2525
pretty: prettify

portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,10 @@ const ListObjects = () => {
215215
(state: AppState) => state.objectBrowser.anonymousAccessOpen,
216216
);
217217

218+
const records = useSelector(
219+
(state: AppState) => state.objectBrowser?.records || [],
220+
);
221+
218222
const loadingBucket = useSelector(selBucketDetailsLoading);
219223
const bucketInfo = useSelector(selBucketDetailsInfo);
220224

@@ -291,6 +295,20 @@ const ListObjects = () => {
291295
(state: AppState) => state.objectBrowser.selectedObjects,
292296
);
293297

298+
const checkForDelMarker = (): boolean => {
299+
let isObjDelMarker = false;
300+
if (selectedObjects.length === 1) {
301+
let matchingRec = records.find((obj) => {
302+
return obj.name === `${selectedObjects[0]}` && obj.delete_flag;
303+
});
304+
305+
isObjDelMarker = !!matchingRec;
306+
}
307+
return isObjDelMarker;
308+
};
309+
310+
const isSelObjectDelMarker = checkForDelMarker();
311+
294312
const fetchMetadata = useCallback(() => {
295313
const objectName = selectedObjects[0];
296314

@@ -317,10 +335,10 @@ const ListObjects = () => {
317335
}, [bucketName, selectedObjects, isMetaDataLoaded]);
318336

319337
useEffect(() => {
320-
if (bucketName && selectedObjects.length === 1) {
338+
if (bucketName && !isSelObjectDelMarker) {
321339
fetchMetadata();
322340
}
323-
}, [bucketName, selectedObjects, fetchMetadata]);
341+
}, [bucketName, selectedObjects, fetchMetadata, isSelObjectDelMarker]);
324342

325343
useEffect(() => {
326344
if (rewindEnabled) {
@@ -834,7 +852,7 @@ const ListObjects = () => {
834852
dispatch(downloadSelected(bucketName));
835853
},
836854
label: "Download",
837-
disabled: !canDownload || selectedObjects?.length === 0,
855+
disabled: !canDownload || isSelObjectDelMarker,
838856
icon: <DownloadIcon />,
839857
tooltip: canDownload
840858
? downloadToolTip
@@ -848,7 +866,8 @@ const ListObjects = () => {
848866
dispatch(openShare());
849867
},
850868
label: "Share",
851-
disabled: selectedObjects.length !== 1 || !canShareFile,
869+
disabled:
870+
selectedObjects.length !== 1 || !canShareFile || isSelObjectDelMarker,
852871
icon: <ShareIcon />,
853872
tooltip: canShareFile ? "Share Selected File" : "Sharing unavailable",
854873
},
@@ -857,7 +876,8 @@ const ListObjects = () => {
857876
dispatch(openPreview());
858877
},
859878
label: "Preview",
860-
disabled: selectedObjects.length !== 1 || !canPreviewFile,
879+
disabled:
880+
selectedObjects.length !== 1 || !canPreviewFile || isSelObjectDelMarker,
861881
icon: <PreviewIcon />,
862882
tooltip: canPreviewFile ? "Preview Selected File" : "Preview unavailable",
863883
},

0 commit comments

Comments
 (0)