diff --git a/dashboard/src/components/UpdateEmailTemplateModal.tsx b/dashboard/src/components/UpdateEmailTemplateModal.tsx index 1157c09..266225d 100644 --- a/dashboard/src/components/UpdateEmailTemplateModal.tsx +++ b/dashboard/src/components/UpdateEmailTemplateModal.tsx @@ -17,8 +17,20 @@ import { Text, useDisclosure, useToast, + Alert, + AlertIcon, + Collapse, + Box, + TableContainer, + Table, + Thead, + Tr, + Th, + Tbody, + Td, + Code, } from '@chakra-ui/react'; -import { FaPlus } from 'react-icons/fa'; +import { FaPlus, FaAngleDown, FaAngleUp } from 'react-icons/fa'; import { useClient } from 'urql'; import { Editor } from 'react-draft-wysiwyg'; import { EditorState, convertToRaw, Modifier } from 'draft-js'; @@ -50,6 +62,7 @@ interface UpdateEmailTemplateInputPropTypes { interface templateVariableDataTypes { text: string; value: string; + description: string; } interface emailTemplateDataType { @@ -94,6 +107,9 @@ const UpdateEmailTemplate = ({ const onEditorStateChange = (editorState: EditorState) => { setEditorState(editorState); }; + const [isDynamicVariableInfoOpen, setIsDynamicVariableInfoOpen] = + useState(false); + const inputChangehandler = (inputType: string, value: any) => { if (inputType !== EmailTemplateInputDataFields.EVENT_NAME) { setValidator({ @@ -202,27 +218,29 @@ const UpdateEmailTemplate = ({ useEffect(() => { const updatedTemplateVariables = Object.entries( emailTemplateVariables - ).reduce((acc, varData): any => { + ).reduce((acc, [key, val]): any => { if ( (templateData[EmailTemplateInputDataFields.EVENT_NAME] !== emailTemplateEventNames['Verify Otp'] && - varData[1] === emailTemplateVariables.otp) || + val === emailTemplateVariables.otp) || (templateData[EmailTemplateInputDataFields.EVENT_NAME] === emailTemplateEventNames['Verify Otp'] && - varData[1] === emailTemplateVariables.verification_url) + val === emailTemplateVariables.verification_url) ) { return acc; } return [ ...acc, { - text: varData[0], - value: varData[1], + text: key, + value: val.value, + description: val.description, }, ]; }, []); setTemplateVariables(updatedTemplateVariables); }, [templateData[EmailTemplateInputDataFields.EVENT_NAME]]); + return ( <> {view === UpdateModalViews.ADD ? ( @@ -256,6 +274,73 @@ const UpdateEmailTemplate = ({ borderColor="gray.200" p="5" > + + setIsDynamicVariableInfoOpen(!isDynamicVariableInfoOpen) + } + borderRadius="5" + marginY={5} + cursor="pointer" + fontSize="sm" + > + + + + Note: You can add set of dynamic variables to subject + and email body. Click here to see the set of dynamic + variables. + + {isDynamicVariableInfoOpen ? : } + + + + + + + + + + + + + {templateVariables.map((i) => ( + + + + + ))} + +
VariableDescription
+ {`{{${i.text}}}`} + + + {i.description} + +
+
+
+ + + + Note: In order to use dynamic variables with link and + images you can put them as part of URL in editor section. + + diff --git a/dashboard/src/components/UpdateWebhookModal.tsx b/dashboard/src/components/UpdateWebhookModal.tsx index 7bf667d..ca4395e 100644 --- a/dashboard/src/components/UpdateWebhookModal.tsx +++ b/dashboard/src/components/UpdateWebhookModal.tsx @@ -569,6 +569,8 @@ const UpdateWebhookModal = ({ status="info" onClick={() => setIsShowingPayload(!isShowingPayload)} borderRadius="5" + cursor="pointer" + fontSize="sm" >