PromucFlow_constructor/app/client/src/pages/workspace/DeleteConfirmationModal.tsx
Valera Melnikov 9eac55a380
chore: add consistent-type-definitions rule (#27907)
## Description
Add consistent-type-definitions rule
2023-10-11 10:35:24 +03:00

73 lines
1.7 KiB
TypeScript

import React from "react";
import {
Button,
Modal,
ModalBody,
ModalContent,
ModalHeader,
ModalFooter,
Text,
} from "design-system";
import {
DELETE_CONFIRMATION_MODAL_TITLE,
DELETE_CONFIRMATION_MODAL_SUBTITLE,
} from "@appsmith/constants/messages";
interface DeleteConfirmationProps {
userToBeDeleted: {
name: string;
username: string;
workspaceId: string;
userGroupId?: string;
entityId?: string;
entityType?: string;
};
isOpen: boolean;
onClose: () => void;
onConfirm: () => void;
isDeletingUser: boolean;
}
function DeleteConfirmationModal(props: DeleteConfirmationProps) {
const { isDeletingUser, isOpen, onClose, onConfirm, userToBeDeleted } = props;
const { entityType, name, username } = userToBeDeleted;
const onOpenChange = (isOpen: boolean) => {
if (!isOpen) {
onClose();
}
};
return (
<Modal onOpenChange={onOpenChange} open={isOpen}>
<ModalContent
className={"t--member-delete-confirmation-modal"}
style={{ width: "600px" }}
>
<ModalHeader>{DELETE_CONFIRMATION_MODAL_TITLE()}</ModalHeader>
<ModalBody>
<Text kind="body-m">
{DELETE_CONFIRMATION_MODAL_SUBTITLE(name || username, entityType)}
</Text>
</ModalBody>
<ModalFooter>
<Button kind="secondary" onClick={onClose} size="md">
Cancel
</Button>
<Button
data-testid="t--workspace-leave-button"
isLoading={isDeletingUser}
kind="error"
onClick={onConfirm}
size="md"
>
Remove
</Button>
</ModalFooter>
</ModalContent>
</Modal>
);
}
export default DeleteConfirmationModal;