mirror of
https://github.com/Unleash/unleash.git
synced 2025-09-24 17:51:14 +02:00
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome to the frontend as well.  Added a few `biome-ignore` to speed up the process but we may want to check and fix them in the future.
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { Dialogue } from 'component/common/Dialogue/Dialogue';
|
|
import React from 'react';
|
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
|
import useProjectApi from 'hooks/api/actions/useProjectApi/useProjectApi';
|
|
import useProjects from 'hooks/api/getters/useProjects/useProjects';
|
|
import useToast from 'hooks/useToast';
|
|
|
|
interface IDeleteProjectDialogueProps {
|
|
project: string;
|
|
open: boolean;
|
|
onClose: (e: React.SyntheticEvent) => void;
|
|
onSuccess?: () => void;
|
|
}
|
|
|
|
export const DeleteProjectDialogue = ({
|
|
open,
|
|
onClose,
|
|
project,
|
|
onSuccess,
|
|
}: IDeleteProjectDialogueProps) => {
|
|
const { deleteProject } = useProjectApi();
|
|
const { refetch: refetchProjectOverview } = useProjects();
|
|
const { setToastData, setToastApiError } = useToast();
|
|
|
|
const onClick = async (e: React.SyntheticEvent) => {
|
|
e.preventDefault();
|
|
try {
|
|
await deleteProject(project);
|
|
refetchProjectOverview();
|
|
setToastData({
|
|
title: 'Deleted project',
|
|
type: 'success',
|
|
text: 'Successfully deleted project',
|
|
});
|
|
onSuccess?.();
|
|
} catch (ex: unknown) {
|
|
setToastApiError(formatUnknownError(ex));
|
|
}
|
|
onClose(e);
|
|
};
|
|
|
|
return (
|
|
<Dialogue
|
|
open={open}
|
|
onClick={onClick}
|
|
onClose={onClose}
|
|
title='Really delete project'
|
|
/>
|
|
);
|
|
};
|