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  };