2
0

🚸 Rename "webhook" block to "HTTP request"

This commit is contained in:
Baptiste Arnaud
2024-02-16 12:04:25 +01:00
parent 8d50dc9dfa
commit 33cbb2b254
35 changed files with 165 additions and 154 deletions

View File

@@ -1,8 +1,8 @@
import { Alert, AlertIcon, Button, Link, Stack, Text } from '@chakra-ui/react'
import { ExternalLinkIcon } from '@/components/icons'
import { MakeComBlock, Webhook } from '@typebot.io/schemas'
import { MakeComBlock, HttpRequest } from '@typebot.io/schemas'
import React from 'react'
import { WebhookAdvancedConfigForm } from '../../webhook/components/WebhookAdvancedConfigForm'
import { HttpRequestAdvancedConfigForm } from '../../webhook/components/HttpRequestAdvancedConfigForm'
type Props = {
block: MakeComBlock
@@ -13,7 +13,7 @@ export const MakeComSettings = ({
block: { id: blockId, options },
onOptionsChange,
}: Props) => {
const setLocalWebhook = async (newLocalWebhook: Webhook) => {
const setLocalWebhook = async (newLocalWebhook: HttpRequest) => {
onOptionsChange({
...options,
webhook: newLocalWebhook,
@@ -42,7 +42,7 @@ export const MakeComSettings = ({
</Stack>
)}
</Alert>
<WebhookAdvancedConfigForm
<HttpRequestAdvancedConfigForm
blockId={blockId}
webhook={options?.webhook}
options={options}

View File

@@ -1,8 +1,8 @@
import { Alert, AlertIcon, Button, Link, Stack, Text } from '@chakra-ui/react'
import { ExternalLinkIcon } from '@/components/icons'
import { PabblyConnectBlock, Webhook } from '@typebot.io/schemas'
import { PabblyConnectBlock, HttpRequest } from '@typebot.io/schemas'
import React from 'react'
import { WebhookAdvancedConfigForm } from '../../webhook/components/WebhookAdvancedConfigForm'
import { HttpRequestAdvancedConfigForm } from '../../webhook/components/HttpRequestAdvancedConfigForm'
import { TextInput } from '@/components/inputs'
type Props = {
@@ -14,7 +14,7 @@ export const PabblyConnectSettings = ({
block: { id: blockId, options },
onOptionsChange,
}: Props) => {
const setLocalWebhook = async (newLocalWebhook: Webhook) => {
const setLocalWebhook = async (newLocalWebhook: HttpRequest) => {
onOptionsChange({
...options,
webhook: newLocalWebhook,
@@ -54,7 +54,7 @@ export const PabblyConnectSettings = ({
withVariableButton={false}
debounceTimeout={0}
/>
<WebhookAdvancedConfigForm
<HttpRequestAdvancedConfigForm
blockId={blockId}
webhook={options?.webhook}
options={options}

View File

@@ -2,7 +2,7 @@ import prisma from '@typebot.io/lib/prisma'
import { canWriteTypebots } from '@/helpers/databaseRules'
import { authenticatedProcedure } from '@/helpers/server/trpc'
import { TRPCError } from '@trpc/server'
import { Block, WebhookBlock, parseGroups } from '@typebot.io/schemas'
import { Block, HttpRequestBlock, parseGroups } from '@typebot.io/schemas'
import { byId, isWebhookBlock } from '@typebot.io/lib'
import { z } from 'zod'
@@ -47,7 +47,7 @@ export const subscribeWebhook = authenticatedProcedure
const webhookBlock = groups
.flatMap<Block>((g) => g.blocks)
.find(byId(blockId)) as WebhookBlock | null
.find(byId(blockId)) as HttpRequestBlock | null
if (!webhookBlock || !isWebhookBlock(webhookBlock))
throw new TRPCError({

View File

@@ -2,7 +2,7 @@ import prisma from '@typebot.io/lib/prisma'
import { canWriteTypebots } from '@/helpers/databaseRules'
import { authenticatedProcedure } from '@/helpers/server/trpc'
import { TRPCError } from '@trpc/server'
import { Block, WebhookBlock, parseGroups } from '@typebot.io/schemas'
import { Block, HttpRequestBlock, parseGroups } from '@typebot.io/schemas'
import { byId, isWebhookBlock } from '@typebot.io/lib'
import { z } from 'zod'
@@ -46,7 +46,7 @@ export const unsubscribeWebhook = authenticatedProcedure
const webhookBlock = groups
.flatMap<Block>((g) => g.blocks)
.find(byId(blockId)) as WebhookBlock | null
.find(byId(blockId)) as HttpRequestBlock | null
if (!webhookBlock || !isWebhookBlock(webhookBlock))
throw new TRPCError({

View File

@@ -19,8 +19,8 @@ import {
KeyValue,
VariableForTest,
ResponseVariableMapping,
Webhook,
WebhookBlock,
HttpRequest,
HttpRequestBlock,
} from '@typebot.io/schemas'
import { useState, useMemo } from 'react'
import { executeWebhook } from '../queries/executeWebhookQuery'
@@ -41,13 +41,13 @@ import { NumberInput } from '@/components/inputs'
type Props = {
blockId: string
webhook: Webhook | undefined
options: WebhookBlock['options']
onWebhookChange: (webhook: Webhook) => void
onOptionsChange: (options: WebhookBlock['options']) => void
webhook: HttpRequest | undefined
options: HttpRequestBlock['options']
onWebhookChange: (webhook: HttpRequest) => void
onOptionsChange: (options: HttpRequestBlock['options']) => void
}
export const WebhookAdvancedConfigForm = ({
export const HttpRequestAdvancedConfigForm = ({
blockId,
webhook,
options,

View File

@@ -1,10 +1,10 @@
import { Stack, Text } from '@chakra-ui/react'
import { useTypebot } from '@/features/editor/providers/TypebotProvider'
import { WebhookBlock } from '@typebot.io/schemas'
import { HttpRequestBlock } from '@typebot.io/schemas'
import { SetVariableLabel } from '@/components/SetVariableLabel'
type Props = {
block: WebhookBlock
block: HttpRequestBlock
}
export const WebhookContent = ({ block: { options } }: Props) => {

View File

@@ -0,0 +1,5 @@
import { WebhookIcon } from '@/components/icons'
import { IconProps } from '@chakra-ui/react'
import React from 'react'
export const HttpRequestIcon = (props: IconProps) => <WebhookIcon {...props} />

View File

@@ -1,19 +1,19 @@
import React from 'react'
import { Stack } from '@chakra-ui/react'
import { Webhook, WebhookBlock } from '@typebot.io/schemas'
import { HttpRequest, HttpRequestBlock } from '@typebot.io/schemas'
import { TextInput } from '@/components/inputs'
import { WebhookAdvancedConfigForm } from './WebhookAdvancedConfigForm'
import { HttpRequestAdvancedConfigForm } from './HttpRequestAdvancedConfigForm'
type Props = {
block: WebhookBlock
onOptionsChange: (options: WebhookBlock['options']) => void
block: HttpRequestBlock
onOptionsChange: (options: HttpRequestBlock['options']) => void
}
export const WebhookSettings = ({
export const HttpRequestSettings = ({
block: { id: blockId, options },
onOptionsChange,
}: Props) => {
const setLocalWebhook = async (newLocalWebhook: Webhook) => {
const setLocalWebhook = async (newLocalWebhook: HttpRequest) => {
onOptionsChange({ ...options, webhook: newLocalWebhook })
}
@@ -24,11 +24,11 @@ export const WebhookSettings = ({
return (
<Stack spacing={4}>
<TextInput
placeholder="Paste webhook URL..."
placeholder="Paste URL..."
defaultValue={options?.webhook?.url}
onChange={updateUrl}
/>
<WebhookAdvancedConfigForm
<HttpRequestAdvancedConfigForm
blockId={blockId}
webhook={options?.webhook}
options={options}

View File

@@ -1,5 +0,0 @@
import { WebhookIcon as WebhookIco } from '@/components/icons'
import { IconProps } from '@chakra-ui/react'
import React from 'react'
export const WebhookIcon = (props: IconProps) => <WebhookIco {...props} />

View File

@@ -1,4 +1,4 @@
import { Variable, WebhookResponse } from '@typebot.io/schemas'
import { Variable, HttpResponse } from '@typebot.io/schemas'
import { sendRequest } from '@typebot.io/lib'
import { env } from '@typebot.io/env'
@@ -7,7 +7,7 @@ export const executeWebhook = (
variables: Variable[],
{ blockId }: { blockId: string }
) =>
sendRequest<WebhookResponse>({
sendRequest<HttpResponse>({
url: `${env.NEXT_PUBLIC_VIEWER_URL[0]}/api/typebots/${typebotId}/blocks/${blockId}/executeWebhook`,
method: 'POST',
body: {

View File

@@ -1,19 +1,19 @@
import { Alert, AlertIcon, Button, Link, Stack, Text } from '@chakra-ui/react'
import { ExternalLinkIcon } from '@/components/icons'
import { Webhook, WebhookBlock, ZapierBlock } from '@typebot.io/schemas'
import { HttpRequest, HttpRequestBlock, ZapierBlock } from '@typebot.io/schemas'
import React from 'react'
import { WebhookAdvancedConfigForm } from '../../webhook/components/WebhookAdvancedConfigForm'
import { HttpRequestAdvancedConfigForm } from '../../webhook/components/HttpRequestAdvancedConfigForm'
type Props = {
block: ZapierBlock
onOptionsChange: (options: WebhookBlock['options']) => void
onOptionsChange: (options: HttpRequestBlock['options']) => void
}
export const ZapierSettings = ({
block: { id: blockId, options },
onOptionsChange,
}: Props) => {
const setLocalWebhook = async (newLocalWebhook: Webhook) => {
const setLocalWebhook = async (newLocalWebhook: HttpRequest) => {
onOptionsChange({
...options,
webhook: newLocalWebhook,
@@ -43,7 +43,7 @@ export const ZapierSettings = ({
</Stack>
)}
</Alert>
<WebhookAdvancedConfigForm
<HttpRequestAdvancedConfigForm
blockId={blockId}
webhook={options?.webhook}
options={options}

View File

@@ -78,7 +78,7 @@ export const BlockLabel = ({ type }: Props): JSX.Element => {
<Text fontSize="sm">{t('editor.sidebarBlock.analytics.label')}</Text>
)
case IntegrationBlockType.WEBHOOK:
return <Text fontSize="sm">{t('editor.sidebarBlock.webhook.label')}</Text>
return <Text fontSize="sm">HTTP request</Text>
case IntegrationBlockType.ZAPIER:
return <Text fontSize="sm">{t('editor.sidebarBlock.zapier.label')}</Text>
case IntegrationBlockType.MAKE_COM:

View File

@@ -30,6 +30,7 @@ import { useDebouncedCallback } from 'use-debounce'
const legacyIntegrationBlocks = [
IntegrationBlockType.OPEN_AI,
IntegrationBlockType.ZEMANTIC_AI,
IntegrationBlockType.WEBHOOK,
]
export const BlocksSideBar = () => {

View File

@@ -2,7 +2,7 @@ import {
Block,
Typebot,
BlockIndices,
Webhook,
HttpRequest,
BlockV6,
TypebotV6,
} from '@typebot.io/schemas'
@@ -26,7 +26,7 @@ export type BlocksActions = {
}
export type WebhookCallBacks = {
onWebhookBlockCreated: (data: Partial<Webhook>) => void
onWebhookBlockCreated: (data: Partial<HttpRequest>) => void
onWebhookBlockDuplicated: (
existingWebhookId: string,
newWebhookId: string

View File

@@ -21,7 +21,7 @@ import { GoogleSheetsNodeContent } from '@/features/blocks/integrations/googleSh
import { MakeComContent } from '@/features/blocks/integrations/makeCom/components/MakeComContent'
import { PabblyConnectContent } from '@/features/blocks/integrations/pabbly/components/PabblyConnectContent'
import { SendEmailContent } from '@/features/blocks/integrations/sendEmail/components/SendEmailContent'
import { WebhookContent } from '@/features/blocks/integrations/webhook/components/WebhookContent'
import { WebhookContent } from '@/features/blocks/integrations/webhook/components/HttpRequestContent'
import { ZapierContent } from '@/features/blocks/integrations/zapier/components/ZapierContent'
import { RedirectNodeContent } from '@/features/blocks/logic/redirect/components/RedirectNodeContent'
import { SetVariableContent } from '@/features/blocks/logic/setVariable/components/SetVariableContent'

View File

@@ -23,7 +23,7 @@ import { RatingInputSettings } from '@/features/blocks/inputs/rating/components/
import { TextInputSettings } from '@/features/blocks/inputs/textInput/components/TextInputSettings'
import { GoogleAnalyticsSettings } from '@/features/blocks/integrations/googleAnalytics/components/GoogleAnalyticsSettings'
import { SendEmailSettings } from '@/features/blocks/integrations/sendEmail/components/SendEmailSettings'
import { WebhookSettings } from '@/features/blocks/integrations/webhook/components/WebhookSettings'
import { HttpRequestSettings } from '@/features/blocks/integrations/webhook/components/HttpRequestSettings'
import { ZapierSettings } from '@/features/blocks/integrations/zapier/components/ZapierSettings'
import { RedirectSettings } from '@/features/blocks/logic/redirect/components/RedirectSettings'
import { SetVariableSettings } from '@/features/blocks/logic/setVariable/components/SetVariableSettings'
@@ -288,7 +288,9 @@ export const BlockSettings = ({
)
}
case IntegrationBlockType.WEBHOOK: {
return <WebhookSettings block={block} onOptionsChange={updateOptions} />
return (
<HttpRequestSettings block={block} onOptionsChange={updateOptions} />
)
}
case IntegrationBlockType.EMAIL: {
return (