2
0

🐛 (editor) Fix edge delete with undefined groupIndex

This commit is contained in:
Baptiste Arnaud
2023-11-09 09:22:33 +01:00
parent 14a37160fd
commit 647afdb8fa
3 changed files with 14 additions and 8 deletions

View File

@ -8,7 +8,7 @@ import {
} from '@typebot.io/schemas'
import { SetTypebot } from '../TypebotProvider'
import { produce, Draft } from 'immer'
import { cleanUpEdgeDraft, deleteEdgeDraft } from './edges'
import { deleteConnectedEdgesDraft, deleteEdgeDraft } from './edges'
import { createId } from '@paralleldrive/cuid2'
import { byId, blockHasItems } from '@typebot.io/lib'
import { duplicateItemDraft } from './items'
@ -67,8 +67,8 @@ export const blocksAction = (setTypebot: SetTypebot): BlocksActions => ({
setTypebot((typebot) =>
produce(typebot, (typebot) => {
const removingBlock = typebot.groups[groupIndex].blocks[blockIndex]
deleteConnectedEdgesDraft(typebot, removingBlock.id)
removeBlockFromGroup({ groupIndex, blockIndex })(typebot)
cleanUpEdgeDraft(typebot, removingBlock.id)
removeEmptyGroups(typebot)
})
),
@ -153,7 +153,7 @@ export const duplicateBlockDraft = (block: BlockV6): BlockV6 => {
export const deleteGroupDraft =
(typebot: Draft<TypebotV6>) => (groupIndex: number) => {
cleanUpEdgeDraft(typebot, typebot.groups[groupIndex].id)
deleteConnectedEdgesDraft(typebot, typebot.groups[groupIndex].id)
typebot.groups.splice(groupIndex, 1)
}

View File

@ -152,8 +152,14 @@ const deleteOutgoingEdgeIdProps = ({
}
const fromGroupIndex =
groupIndex ??
typebot.groups.findIndex((g) =>
g.blocks.some((b) => 'blockId' in edge.from && b.id === edge.from.blockId)
typebot.groups.findIndex(
(g) =>
edge.to.groupId === g.id ||
g.blocks.some(
(b) =>
'blockId' in edge.from &&
(b.id === edge.from.blockId || b.id === edge.to.blockId)
)
)
const fromBlockIndex = typebot.groups[fromGroupIndex].blocks.findIndex(
byId(edge.from.blockId)
@ -175,7 +181,7 @@ const deleteOutgoingEdgeIdProps = ({
undefined
}
export const cleanUpEdgeDraft = (
export const deleteConnectedEdgesDraft = (
typebot: Draft<TypebotV6>,
deletedNodeId: string
) => {

View File

@ -8,7 +8,7 @@ import {
} from '@typebot.io/schemas'
import { SetTypebot } from '../TypebotProvider'
import { Draft, produce } from 'immer'
import { cleanUpEdgeDraft } from './edges'
import { deleteConnectedEdgesDraft } from './edges'
import { byId, blockHasItems } from '@typebot.io/lib'
import { createId } from '@paralleldrive/cuid2'
import {
@ -172,7 +172,7 @@ const itemsAction = (setTypebot: SetTypebot): ItemsActions => ({
] as BlockWithItems
const removingItem = block.items[itemIndex]
block.items.splice(itemIndex, 1)
cleanUpEdgeDraft(typebot, removingItem.id)
deleteConnectedEdgesDraft(typebot, removingItem.id)
})
),
})