From 7c2ce2fc41f52ef96f3b1473671600f1d81fa7b6 Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Mon, 17 Apr 2023 21:07:41 +0200 Subject: [PATCH] :adhesive_bandage: (share) Fix undefined apiHost under API instructions --- .../modals/Javascript/JavascriptBubbleSnippet.tsx | 4 ++-- .../modals/Javascript/JavascriptPopupSnippet.tsx | 4 ++-- .../modals/Javascript/JavascriptStandardSnippet.tsx | 4 ++-- .../Script/instructions/ScriptBubbleInstructions.tsx | 4 ++-- .../Script/instructions/ScriptPopupInstructions.tsx | 4 ++-- .../instructions/ScriptStandardInstructions.tsx | 4 ++-- .../instructions/WordpressBubbleInstructions.tsx | 4 ++-- .../instructions/WordpressPopupInstructions.tsx | 4 ++-- .../components/embeds/snippetParsers/shared.ts | 11 ++++++++--- 9 files changed, 24 insertions(+), 19 deletions(-) diff --git a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptBubbleSnippet.tsx b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptBubbleSnippet.tsx index 9dff1d7adfa..9ecc14d4eef 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptBubbleSnippet.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptBubbleSnippet.tsx @@ -1,7 +1,7 @@ import prettier from 'prettier/standalone' import parserHtml from 'prettier/parser-html' import { - parseApiHost, + parseApiHostValue, parseInitBubbleCode, typebotImportCode, } from '../../snippetParsers' @@ -19,7 +19,7 @@ export const JavascriptBubbleSnippet = ({ theme, previewMessage }: Props) => { ${parseInitBubbleCode({ typebot: typebot?.publicId ?? '', - apiHost: parseApiHost(typebot?.customDomain), + apiHost: parseApiHostValue(typebot?.customDomain), theme: { ...theme, chatWindow: { diff --git a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptPopupSnippet.tsx b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptPopupSnippet.tsx index 26a7bf4dc51..ad04a19e4ee 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptPopupSnippet.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptPopupSnippet.tsx @@ -2,7 +2,7 @@ import { useTypebot } from '@/features/editor/providers/TypebotProvider' import parserHtml from 'prettier/parser-html' import prettier from 'prettier/standalone' import { - parseApiHost, + parseApiHostValue, parseInitPopupCode, typebotImportCode, } from '../../snippetParsers' @@ -16,7 +16,7 @@ export const JavascriptPopupSnippet = ({ autoShowDelay }: Props) => { const snippet = prettier.format( createSnippet({ typebot: typebot?.publicId ?? '', - apiHost: parseApiHost(typebot?.customDomain), + apiHost: parseApiHostValue(typebot?.customDomain), autoShowDelay, }), { diff --git a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptStandardSnippet.tsx b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptStandardSnippet.tsx index 4837a74debd..e0c73669afa 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptStandardSnippet.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Javascript/JavascriptStandardSnippet.tsx @@ -1,7 +1,7 @@ import parserHtml from 'prettier/parser-html' import prettier from 'prettier/standalone' import { - parseApiHost, + parseApiHostValue, parseInitStandardCode, typebotImportCode, } from '../../snippetParsers' @@ -40,7 +40,7 @@ export const parseStandardHeadCode = ( ${parseInitStandardCode({ typebot: publicId ?? '', - apiHost: parseApiHost(customDomain), + apiHost: parseApiHostValue(customDomain), })}`, { parser: 'html', plugins: [parserHtml] } ) diff --git a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptBubbleInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptBubbleInstructions.tsx index f6c7eeae6db..18c8e0bb72d 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptBubbleInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptBubbleInstructions.tsx @@ -9,7 +9,7 @@ import { parseInlineScript, parseInitBubbleCode, typebotImportCode, - parseApiHost, + parseApiHostValue, } from '../../../snippetParsers' export const parseDefaultBubbleTheme = (typebot?: Typebot) => ({ @@ -36,7 +36,7 @@ export const ScriptBubbleInstructions = () => { ${parseInitBubbleCode({ typebot: typebot?.publicId ?? '', - apiHost: parseApiHost(typebot?.customDomain), + apiHost: parseApiHostValue(typebot?.customDomain), theme, previewMessage, })}` diff --git a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptPopupInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptPopupInstructions.tsx index e300467f4dc..1e994a4e74a 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptPopupInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptPopupInstructions.tsx @@ -5,7 +5,7 @@ import { useState } from 'react' import { PopupSettings } from '../../../settings/PopupSettings' import { parseInitPopupCode } from '../../../snippetParsers' import { - parseApiHost, + parseApiHostValue, parseInlineScript, typebotImportCode, } from '../../../snippetParsers/shared' @@ -19,7 +19,7 @@ export const ScriptPopupInstructions = () => { ${parseInitPopupCode({ typebot: typebot?.publicId ?? '', - apiHost: parseApiHost(typebot?.customDomain), + apiHost: parseApiHostValue(typebot?.customDomain), autoShowDelay: inputValue, })}` ) diff --git a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptStandardInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptStandardInstructions.tsx index ed656b283b7..0c4ffd6a256 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptStandardInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/Script/instructions/ScriptStandardInstructions.tsx @@ -6,7 +6,7 @@ import { StandardSettings } from '../../../settings/StandardSettings' import { parseInitStandardCode } from '../../../snippetParsers/standard' import { parseStandardElementCode } from '../../Javascript/JavascriptStandardSnippet' import { - parseApiHost, + parseApiHostValue, parseInlineScript, typebotImportCode, } from '../../../snippetParsers/shared' @@ -30,7 +30,7 @@ export const ScriptStandardInstructions = () => { ${parseInitStandardCode({ typebot: typebot?.publicId ?? '', - apiHost: parseApiHost(typebot?.customDomain), + apiHost: parseApiHostValue(typebot?.customDomain), })}`) return ( diff --git a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressBubbleInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressBubbleInstructions.tsx index 70b45d643dd..5c1c98bbc1e 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressBubbleInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressBubbleInstructions.tsx @@ -12,7 +12,7 @@ import { import { BubbleProps } from '@typebot.io/js' import { useState } from 'react' import { BubbleSettings } from '../../../settings/BubbleSettings/BubbleSettings' -import { parseApiHost, parseInitBubbleCode } from '../../../snippetParsers' +import { parseApiHostValue, parseInitBubbleCode } from '../../../snippetParsers' import { parseDefaultBubbleTheme } from '../../Javascript/instructions/JavascriptBubbleInstructions' type Props = { @@ -29,7 +29,7 @@ export const WordpressBubbleInstructions = ({ publicId }: Props) => { const initCode = parseInitBubbleCode({ typebot: publicId, - apiHost: parseApiHost(typebot?.customDomain), + apiHost: parseApiHostValue(typebot?.customDomain), theme: { ...theme, chatWindow: { diff --git a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressPopupInstructions.tsx b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressPopupInstructions.tsx index e4ded25eb5b..650fa473205 100644 --- a/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressPopupInstructions.tsx +++ b/apps/builder/src/features/publish/components/embeds/modals/WordpressModal/instructions/WordpressPopupInstructions.tsx @@ -11,7 +11,7 @@ import { import { useState } from 'react' import { PopupSettings } from '../../../settings/PopupSettings' import { parseInitPopupCode } from '../../../snippetParsers/popup' -import { parseApiHost } from '../../../snippetParsers' +import { parseApiHostValue } from '../../../snippetParsers' type Props = { publicId: string @@ -25,7 +25,7 @@ export const WordpressPopupInstructions = ({ const initCode = parseInitPopupCode({ typebot: publicId, - apiHost: parseApiHost(customDomain), + apiHost: parseApiHostValue(customDomain), autoShowDelay, }) diff --git a/apps/builder/src/features/publish/components/embeds/snippetParsers/shared.ts b/apps/builder/src/features/publish/components/embeds/snippetParsers/shared.ts index 6a3f7c4a907..2e47c0aa6c5 100644 --- a/apps/builder/src/features/publish/components/embeds/snippetParsers/shared.ts +++ b/apps/builder/src/features/publish/components/embeds/snippetParsers/shared.ts @@ -51,7 +51,12 @@ export const parseApiHost = ( customDomain: Typebot['customDomain'] | undefined ) => { if (customDomain) return new URL(`https://${customDomain}`).origin - return isCloudProdInstance - ? undefined - : env('VIEWER_INTERNAL_URL') ?? getViewerUrl() + return env('VIEWER_INTERNAL_URL') ?? getViewerUrl() +} + +export const parseApiHostValue = ( + customDomain: Typebot['customDomain'] | undefined +) => { + if (isCloudProdInstance) return + return parseApiHost(customDomain) }