diff --git a/dashboard/src/components/DeleteEmailTemplateModal.tsx b/dashboard/src/components/DeleteEmailTemplateModal.tsx
new file mode 100644
index 0000000..01d429f
--- /dev/null
+++ b/dashboard/src/components/DeleteEmailTemplateModal.tsx
@@ -0,0 +1,106 @@
+import React from 'react';
+import {
+ Button,
+ Center,
+ Flex,
+ MenuItem,
+ Modal,
+ ModalBody,
+ ModalCloseButton,
+ ModalContent,
+ ModalFooter,
+ ModalHeader,
+ ModalOverlay,
+ useDisclosure,
+ Text,
+ useToast,
+} from '@chakra-ui/react';
+import { useClient } from 'urql';
+import { FaRegTrashAlt } from 'react-icons/fa';
+import { DeleteEmailTemplate } from '../graphql/mutation';
+import { capitalizeFirstLetter } from '../utils';
+
+interface deleteEmailTemplateModalInputPropTypes {
+ emailTemplateId: string;
+ eventName: string;
+ fetchEmailTemplatesData: Function;
+}
+
+const DeleteEmailTemplateModal = ({
+ emailTemplateId,
+ eventName,
+ fetchEmailTemplatesData,
+}: deleteEmailTemplateModalInputPropTypes) => {
+ const client = useClient();
+ const toast = useToast();
+ const { isOpen, onOpen, onClose } = useDisclosure();
+
+ const deleteHandler = async () => {
+ const res = await client
+ .mutation(DeleteEmailTemplate, { params: { id: emailTemplateId } })
+ .toPromise();
+ if (res.error) {
+ toast({
+ title: capitalizeFirstLetter(res.error.message),
+ isClosable: true,
+ status: 'error',
+ position: 'bottom-right',
+ });
+
+ return;
+ } else if (res.data?._delete_email_template) {
+ toast({
+ title: capitalizeFirstLetter(res.data?._delete_email_template.message),
+ isClosable: true,
+ status: 'success',
+ position: 'bottom-right',
+ });
+ }
+ onClose();
+ fetchEmailTemplatesData();
+ };
+ return (
+ <>
+
+
+
+
+ Delete Email Template
+
+
+ Are you sure?
+
+
+ Email template for event {eventName} will be deleted
+ permanently!
+
+
+
+
+
+ }
+ colorScheme="red"
+ variant="solid"
+ onClick={deleteHandler}
+ isDisabled={false}
+ >
+
+ Delete
+
+
+
+
+
+ >
+ );
+};
+
+export default DeleteEmailTemplateModal;
diff --git a/dashboard/src/pages/EmailTemplates.tsx b/dashboard/src/pages/EmailTemplates.tsx
index 6b2990f..9058003 100644
--- a/dashboard/src/pages/EmailTemplates.tsx
+++ b/dashboard/src/pages/EmailTemplates.tsx
@@ -42,6 +42,7 @@ import {
} from '../constants';
import { EmailTemplatesQuery, WebhooksDataQuery } from '../graphql/queries';
import dayjs from 'dayjs';
+import DeleteEmailTemplateModal from '../components/DeleteEmailTemplateModal';
interface paginationPropTypes {
limit: number;
@@ -174,6 +175,17 @@ const EmailTemplates = () => {
selectedTemplate={templateData}
fetchEmailTemplatesData={fetchEmailTemplatesData}
/>
+