2
0

🚸 (buttons) Detect multi items pasting with br…

This commit is contained in:
Baptiste Arnaud
2024-02-19 16:50:26 +01:00
parent 219b2295b4
commit 927feae32b
2 changed files with 9 additions and 4 deletions

View File

@@ -1,6 +1,5 @@
import { import {
EditablePreview, EditablePreview,
EditableInput,
Editable, Editable,
Fade, Fade,
IconButton, IconButton,
@@ -13,6 +12,7 @@ import {
Portal, Portal,
useColorModeValue, useColorModeValue,
SlideFade, SlideFade,
EditableTextarea,
} from '@chakra-ui/react' } from '@chakra-ui/react'
import { PlusIcon, SettingsIcon } from '@/components/icons' import { PlusIcon, SettingsIcon } from '@/components/icons'
import { useTypebot } from '@/features/editor/providers/TypebotProvider' import { useTypebot } from '@/features/editor/providers/TypebotProvider'
@@ -65,10 +65,14 @@ export const ButtonsItemNode = ({ item, indices, isMouseOver }: Props) => {
} }
const handleEditableChange = (val: string) => { const handleEditableChange = (val: string) => {
const splittedBreakLines = val.split('\n')
const splittedCommas = val.split(',')
const isPastingMultipleItems = const isPastingMultipleItems =
val.length - itemValue.length > 1 && val.includes(',') val.length - itemValue.length > 1 &&
(splittedBreakLines.length > 2 || splittedCommas.length > 2)
if (isPastingMultipleItems) { if (isPastingMultipleItems) {
const values = val.split(',') const values =
splittedBreakLines.length > 2 ? splittedBreakLines : splittedCommas
return values.forEach((v, i) => { return values.forEach((v, i) => {
if (i === 0) { if (i === 0) {
setItemValue(v) setItemValue(v)
@@ -120,7 +124,7 @@ export const ButtonsItemNode = ({ item, indices, isMouseOver }: Props) => {
} }
cursor="pointer" cursor="pointer"
/> />
<EditableInput onMouseDownCapture={(e) => e.stopPropagation()} /> <EditableTextarea onMouseDownCapture={(e) => e.stopPropagation()} />
</Editable> </Editable>
<HitboxExtension /> <HitboxExtension />
<SlideFade <SlideFade

View File

@@ -170,6 +170,7 @@ const itemsAction = (setTypebot: SetTypebot): ItemsActions => ({
const block = typebot.groups[groupIndex].blocks[ const block = typebot.groups[groupIndex].blocks[
blockIndex blockIndex
] as BlockWithItems ] as BlockWithItems
if (block.items.length === 1) return
const removingItem = block.items[itemIndex] const removingItem = block.items[itemIndex]
block.items.splice(itemIndex, 1) block.items.splice(itemIndex, 1)
deleteConnectedEdgesDraft(typebot, removingItem.id) deleteConnectedEdgesDraft(typebot, removingItem.id)