github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/webui/src/pages/repositories/repository/error.jsx (about) 1 import {useRouter} from "../../../lib/hooks/router"; 2 import Alert from "react-bootstrap/Alert"; 3 import Button from "react-bootstrap/Button"; 4 import {repositories, RepositoryDeletionError} from "../../../lib/api"; 5 import {TrashIcon} from "@primer/octicons-react"; 6 import React from "react"; 7 import {AlertError} from "../../../lib/components/controls"; 8 9 const RepositoryInDeletionContainer = ({repoId}) => { 10 const router = useRouter(); 11 return ( 12 <Alert variant="warning"> 13 <Alert.Heading>Repository is undergoing deletion</Alert.Heading> 14 This may take several seconds. You can retry the deletion process by pressing the delete button again. 15 <hr /> 16 <div className="d-flex justify-content-end"> 17 <Button variant="danger" className="mt-3" onClick={ 18 async () => { 19 try { 20 await repositories.delete(repoId); 21 } catch { 22 // continue regardless of error 23 } 24 return router.push('/repositories') 25 }}> 26 <TrashIcon/> Delete Repository 27 </Button> 28 </div> 29 </Alert> 30 ); 31 }; 32 33 export const RepoError = ({error}) => { 34 if (error instanceof RepositoryDeletionError) { 35 return <RepositoryInDeletionContainer repoId={error.repoId}/>; 36 } 37 return <AlertError error={error}/>; 38 };