diff --git a/portal-ui/src/screens/Console/Buckets/BucketDetails/BrowserHandler.tsx b/portal-ui/src/screens/Console/Buckets/BucketDetails/BrowserHandler.tsx index 8728bb384..61a182d3f 100644 --- a/portal-ui/src/screens/Console/Buckets/BucketDetails/BrowserHandler.tsx +++ b/portal-ui/src/screens/Console/Buckets/BucketDetails/BrowserHandler.tsx @@ -293,6 +293,16 @@ const BrowserHandler = () => { [bucketName, rewindEnabled, showDeleted, dispatch, onMessageCallBack] ); + useEffect(() => { + // when a bucket param changes, (i.e /browser/:bucketName), re-init e.g with KBar + if (bucketName) { + dispatch(resetMessages()); + dispatch(setLoadingRecords(true)); + dispatch(setLoadingObjects(true)); + initWSRequest("", new Date()); + } + }, [bucketName, dispatch, initWSRequest]); + useEffect(() => { return () => { const request: WebsocketRequest = { @@ -333,7 +343,7 @@ const BrowserHandler = () => { ) ); } - }, [internalPaths, rewindDate, rewindEnabled, dispatch]); + }, [bucketName, internalPaths, rewindDate, rewindEnabled, dispatch]); // Direct file access effect / prefix useEffect(() => { diff --git a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx index 0e8a08aca..dae29bed8 100644 --- a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx +++ b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx @@ -140,6 +140,7 @@ import { import FilterObjectsSB from "../../../../ObjectBrowser/FilterObjectsSB"; import AddAccessRule from "../../../BucketDetails/AddAccessRule"; +import { isVersionedMode } from "../../../../../../utils/validationFunctions"; const DeleteMultipleObjects = withSuspense( React.lazy(() => import("./DeleteMultipleObjects")) @@ -259,7 +260,7 @@ const ListObjects = () => { (state: AppState) => state.objectBrowser.simplePath ); - const isVersioned = useSelector( + const versioningConfig = useSelector( (state: AppState) => state.objectBrowser.versionInfo ); const lockingEnabled = useSelector( @@ -297,6 +298,7 @@ const ListObjects = () => { const [canPreviewFile, setCanPreviewFile] = useState(false); const [quota, setQuota] = useState(null); + const isVersioningApplied = isVersionedMode(versioningConfig.status); const bucketName = params.bucketName || ""; const pathSegment = location.pathname.split(`/browser/${bucketName}/`); @@ -890,7 +892,7 @@ const ListObjects = () => { selectedBucket={bucketName} selectedObjects={selectedObjects} closeDeleteModalAndRefresh={closeDeleteMultipleModalAndRefresh} - versioning={isVersioned} + versioning={versioningConfig} /> )} {rewindSelect && ( @@ -1019,7 +1021,7 @@ const ListObjects = () => { setRewindSelect(true); }} disabled={ - !isVersioned || + !isVersioningApplied || !hasPermission(bucketName, [ IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS, @@ -1130,7 +1132,7 @@ const ListObjects = () => { bucketName={bucketName} internalPaths={pageTitle} additionalOptions={ - !isVersioned || rewindEnabled ? null : ( + !isVersioningApplied || rewindEnabled ? null : (
{ internalPaths={selectedInternalPaths} bucketName={bucketName} onClosePanel={onClosePanel} - versioningInfo={isVersioned} + versioningInfo={versioningConfig} locking={lockingEnabled} /> )}