From 85630a59c1c07acbeca83c4545f789512f409491 Mon Sep 17 00:00:00 2001 From: anik-ghosh-au7 Date: Tue, 2 Aug 2022 00:56:21 +0530 Subject: [PATCH] feat: add webhook payload example --- dashboard/src/components/InputField.tsx | 1 - .../src/components/UpdateWebhookModal.tsx | 75 ++++++++++++++++++- dashboard/src/constants.ts | 27 +++++++ 3 files changed, 100 insertions(+), 3 deletions(-) diff --git a/dashboard/src/components/InputField.tsx b/dashboard/src/components/InputField.tsx index f4d373d..39d68ac 100644 --- a/dashboard/src/components/InputField.tsx +++ b/dashboard/src/components/InputField.tsx @@ -12,7 +12,6 @@ import { Select, Textarea, Switch, - Code, Text, } from '@chakra-ui/react'; import { diff --git a/dashboard/src/components/UpdateWebhookModal.tsx b/dashboard/src/components/UpdateWebhookModal.tsx index d399c62..9749ef5 100644 --- a/dashboard/src/components/UpdateWebhookModal.tsx +++ b/dashboard/src/components/UpdateWebhookModal.tsx @@ -2,6 +2,8 @@ import React, { useEffect, useState } from 'react'; import { Button, Center, + Code, + Collapse, Flex, Input, InputGroup, @@ -20,7 +22,13 @@ import { useDisclosure, useToast, } from '@chakra-ui/react'; -import { FaMinusCircle, FaPlus } from 'react-icons/fa'; +import { + FaAngleDown, + FaAngleUp, + FaMinusCircle, + FaPlus, + FaRegClone, +} from 'react-icons/fa'; import { useClient } from 'urql'; import { webhookEventNames, @@ -29,8 +37,13 @@ import { WebhookInputHeaderFields, UpdateModalViews, webhookVerifiedStatus, + webhookPayloadExample, } from '../constants'; -import { capitalizeFirstLetter, validateURI } from '../utils'; +import { + capitalizeFirstLetter, + copyTextToClipboard, + validateURI, +} from '../utils'; import { AddWebhook, EditWebhook, TestEndpoint } from '../graphql/mutation'; import { BiCheckCircle, BiError, BiErrorCircle } from 'react-icons/bi'; @@ -102,6 +115,7 @@ const UpdateWebhookModal = ({ const { isOpen, onOpen, onClose } = useDisclosure(); const [loading, setLoading] = useState(false); const [verifyingEndpoint, setVerifyingEndpoint] = useState(false); + const [isShowingPayload, setIsShowingPayload] = useState(false); const [webhook, setWebhook] = useState({ ...initWebhookData, }); @@ -454,6 +468,63 @@ const UpdateWebhookModal = ({ + + + + Payload + + (example) + + + + + + +
+											{webhookPayloadExample}
+										
+ {isShowingPayload && ( + + copyTextToClipboard(webhookPayloadExample) + } + > + + + )} +
+
+