github.com/minio/console@v1.4.1/web-app/src/screens/Console/ObjectBrowser/ObjectBrowser.tsx (about) 1 // This file is part of MinIO Console Server 2 // Copyright (c) 2022 MinIO, Inc. 3 // 4 // This program is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Affero General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Affero General Public License for more details. 13 // 14 // You should have received a copy of the GNU Affero General Public License 15 // along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17 import React, { Suspense } from "react"; 18 import { Navigate, Route, Routes } from "react-router-dom"; 19 import { IAM_PAGES } from "../../../common/SecureComponent/permissions"; 20 import LoadingComponent from "../../../common/LoadingComponent"; 21 import NotFoundPage from "../../NotFoundPage"; 22 import OBBucketList from "./OBBucketList"; 23 24 const BrowserHandler = React.lazy( 25 () => import("../Buckets/BucketDetails/BrowserHandler"), 26 ); 27 const AddBucket = React.lazy( 28 () => import("../Buckets/ListBuckets/AddBucket/AddBucket"), 29 ); 30 31 const ObjectBrowser = () => { 32 return ( 33 <Routes> 34 <Route 35 path={IAM_PAGES.ADD_BUCKETS} 36 element={ 37 <Suspense fallback={<LoadingComponent />}> 38 <AddBucket /> 39 </Suspense> 40 } 41 /> 42 <Route 43 path="/" 44 element={ 45 <Suspense fallback={<LoadingComponent />}> 46 <OBBucketList /> 47 </Suspense> 48 } 49 /> 50 <Route 51 path="/:bucketName/*" 52 element={ 53 <Suspense fallback={<LoadingComponent />}> 54 <BrowserHandler /> 55 </Suspense> 56 } 57 /> 58 <Route 59 path=":bucketName/" 60 element={ 61 <Suspense fallback={<LoadingComponent />}> 62 <BrowserHandler /> 63 </Suspense> 64 } 65 /> 66 <Route element={<Navigate to={`/browser`} />} path="*" /> 67 68 <Route 69 element={ 70 <Suspense fallback={<LoadingComponent />}> 71 <NotFoundPage /> 72 </Suspense> 73 } 74 /> 75 </Routes> 76 ); 77 }; 78 79 export default ObjectBrowser;