diff --git a/apps/builder/components/dashboard/FolderContent/TypebotButton.tsx b/apps/builder/components/dashboard/FolderContent/TypebotButton.tsx index fa30fbf8412..e5ef4c02d80 100644 --- a/apps/builder/components/dashboard/FolderContent/TypebotButton.tsx +++ b/apps/builder/components/dashboard/FolderContent/TypebotButton.tsx @@ -64,14 +64,15 @@ export const TypebotButton = ({ onTypebotDeleted() } - const handleDuplicateClick = async () => { + const handleDuplicateClick = async (e: React.MouseEvent) => { + e.stopPropagation() const { data: createdTypebot, error } = await duplicateTypebot(typebot) if (error) return toast({ title: "Couldn't duplicate typebot", description: error.message, }) - if (createdTypebot) router.push(`/typebots/${createdTypebot?.id}`) + if (createdTypebot) router.push(`/typebots/${createdTypebot?.id}/edit`) } const handleDeleteClick = (e: React.MouseEvent) => { diff --git a/apps/builder/services/typebots.ts b/apps/builder/services/typebots.ts index 8bad52f8d45..98569605d0d 100644 --- a/apps/builder/services/typebots.ts +++ b/apps/builder/services/typebots.ts @@ -39,7 +39,7 @@ import { import shortId, { generate } from 'short-uuid' import { Typebot } from 'models' import useSWR from 'swr' -import { fetcher, toKebabCase } from './utils' +import { fetcher, omit, toKebabCase } from './utils' import { isBubbleStepType, stepTypeHasItems, @@ -92,20 +92,20 @@ export const importTypebot = async (typebot: Typebot) => body: typebot, }) -export const duplicateTypebot = async ({ - folderId, - ownerId, - name, -}: Typebot) => { - const typebot = { - folderId, - ownerId, - name: `${name} copy`, - } +export const duplicateTypebot = async (typebot: Typebot) => { + const duplicatedTypebot: Omit = omit( + { + ...typebot, + name: `${typebot.name} copy`, + publishedTypebotId: null, + publicId: null, + }, + 'id' + ) return sendRequest({ url: `/api/typebots`, method: 'POST', - body: typebot, + body: duplicatedTypebot, }) }