From c415096a4fd7decb13cef095685a73f4103f5fba Mon Sep 17 00:00:00 2001 From: Lucas Cordeiro Araujo Date: Thu, 26 Mar 2026 14:59:28 -0300 Subject: [PATCH 1/3] fix: change limits --- .../WhatsAppButtonsListSettingsBody.tsx | 63 +++++++++++++++---- .../WhatsAppOptionsListSettingsBody.tsx | 4 +- 2 files changed, 52 insertions(+), 15 deletions(-) diff --git a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppButtonsListSettings/WhatsAppButtonsListSettingsBody.tsx b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppButtonsListSettings/WhatsAppButtonsListSettingsBody.tsx index dd338679da..dbc6d1a471 100644 --- a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppButtonsListSettings/WhatsAppButtonsListSettingsBody.tsx +++ b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppButtonsListSettings/WhatsAppButtonsListSettingsBody.tsx @@ -10,7 +10,15 @@ import { Stack, Text, } from '@chakra-ui/react' -import { TextBubbleContent, Variable, WhatsAppButtonsListOptions, WhatsAppButtonsListStep, StepWithItems, StepIndices, ItemType } from 'models' +import { + TextBubbleContent, + Variable, + WhatsAppButtonsListOptions, + WhatsAppButtonsListStep, + StepWithItems, + StepIndices, + ItemType, +} from 'models' import { useState } from 'react' import { TextBubbleEditor } from 'components/shared/Graph/Nodes/StepNode/TextBubbleEditor' import { VariableSearchInput } from 'components/shared/VariableSearchInput/VariableSearchInput' @@ -57,7 +65,7 @@ export const WhatsAppButtonsListSettingsBody = ({ }) const MAX_LENGHT_HEADER_AND_FOOTER = 60 - const MAX_LENGHT_BODY = 1024 + const MAX_LENGHT_BODY = 4096 const MAX_BUTTONS = 3 const handleVariableChange = (variable?: Variable) => { @@ -156,8 +164,9 @@ export const WhatsAppButtonsListSettingsBody = ({ handleFallBackMessage(content, index)} initialValue={message ? message.richText : []} @@ -203,7 +212,9 @@ export const WhatsAppButtonsListSettingsBody = ({ const handleRemoveButton = (index: number) => { if (localListItems.length <= 1) return - const updatedItems = localListItems.filter((_: any, i: number) => i !== index) + const updatedItems = localListItems.filter( + (_: any, i: number) => i !== index + ) setLocalListItems(updatedItems) onOptionsChange({ ...options, buttonItems: updatedItems }) @@ -273,7 +284,9 @@ export const WhatsAppButtonsListSettingsBody = ({ step={step as StepWithItems} indices={indices} isReadOnly={false} - handleUpdateItem={(_, itemIndex, value) => handleUpdateButton(itemIndex, value)} + handleUpdateItem={(_, itemIndex, value) => + handleUpdateButton(itemIndex, value) + } handleRemoveItem={(_, itemIndex) => handleRemoveButton(itemIndex)} handleReorderItem={handleReorderButton} /> @@ -285,11 +298,19 @@ export const WhatsAppButtonsListSettingsBody = ({ onClick={handleAddButton} variant="outline" size="md" - color={localListItems.length >= MAX_BUTTONS ? 'gray.400' : '#1366C9'} - borderColor={localListItems.length >= MAX_BUTTONS ? 'gray.300' : '#1366C9'} + color={ + localListItems.length >= MAX_BUTTONS ? 'gray.400' : '#1366C9' + } + borderColor={ + localListItems.length >= MAX_BUTTONS ? 'gray.300' : '#1366C9' + } borderWidth="2px" fontSize="sm" - _hover={localListItems.length >= MAX_BUTTONS ? {} : { bg: '#1366C9', color: 'white' }} + _hover={ + localListItems.length >= MAX_BUTTONS + ? {} + : { bg: '#1366C9', color: 'white' } + } _disabled={{ opacity: 1, cursor: 'not-allowed' }} isDisabled={localListItems.length >= MAX_BUTTONS} > @@ -298,7 +319,11 @@ export const WhatsAppButtonsListSettingsBody = ({ - {options?.useFallback && localListItems.length > 0 && localListItems.some((item: any) => item.text && item.text.trim() !== '') && + {options?.useFallback && + localListItems.length > 0 && + localListItems.some( + (item: any) => item.text && item.text.trim() !== '' + ) && (options?.fallbackMessages?.length ? ( <> @@ -318,7 +343,12 @@ export const WhatsAppButtonsListSettingsBody = ({ fallbackMessageComponent(message, index) )} - + Se o cliente errar 3 vezes seguidas, atribuir conversa para: - + Texto do rodapé @@ -359,7 +394,9 @@ export const WhatsAppButtonsListSettingsBody = ({ diff --git a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppOptionsListSettings/WhatsAppOptionsListSettingsBody.tsx b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppOptionsListSettings/WhatsAppOptionsListSettingsBody.tsx index 96e33a0d70..10cd08fa33 100644 --- a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppOptionsListSettings/WhatsAppOptionsListSettingsBody.tsx +++ b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppOptionsListSettings/WhatsAppOptionsListSettingsBody.tsx @@ -62,8 +62,8 @@ export const WhatsAppOptionsListSettingsBody = ({ }) const MAX_LENGHT_HEADER_AND_FOOTER = 60 - const MAX_LENGHT_BODY = 1024 - const MAX_LENGHT_LIST_TITLE = 30 + const MAX_LENGHT_BODY = 4096 + const MAX_LENGHT_LIST_TITLE = 20 const MAX_OPTIONS = 10 const handleVariableChange = (variable?: Variable) => { From f3ffe9d916f34bfc04a36076a073a6c45eb7050d Mon Sep 17 00:00:00 2001 From: Lucas Cordeiro Araujo Date: Thu, 26 Mar 2026 15:15:22 -0300 Subject: [PATCH 2/3] fix: change limits --- .../shared/Graph/Nodes/helpers/helpers.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/builder/components/shared/Graph/Nodes/helpers/helpers.tsx b/apps/builder/components/shared/Graph/Nodes/helpers/helpers.tsx index f613ec971e..c54a5fdf91 100644 --- a/apps/builder/components/shared/Graph/Nodes/helpers/helpers.tsx +++ b/apps/builder/components/shared/Graph/Nodes/helpers/helpers.tsx @@ -43,7 +43,10 @@ const hasConditionSameTargetBlock = (step: Step, edges: Edge[]): boolean => { if (validItems.length === 0) return false const itemEdge = edges.find( - (e) => e.from.stepId === step.id && e.from.itemId && validItems.some((item) => item.id === e.from.itemId) + (e) => + e.from.stepId === step.id && + e.from.itemId && + validItems.some((item) => item.id === e.from.itemId) ) const stepEdge = edges.find( @@ -66,7 +69,10 @@ const inpuStepsWithFallbackMessages = [ IntegrationStepType.EXTERNAL_EVENT, ] -export const getValidationMessages = (step: Step, edges?: Edge[]): Array => { +export const getValidationMessages = ( + step: Step, + edges?: Edge[] +): Array => { try { const data = [] @@ -74,7 +80,9 @@ export const getValidationMessages = (step: Step, edges?: Edge[]): Array Date: Thu, 26 Mar 2026 16:17:16 -0300 Subject: [PATCH 3/3] fix: update WhatsApp body length limits to 1024 characters --- .../WhatsAppButtonsListSettingsBody.tsx | 2 +- .../WhatsAppOptionsListSettingsBody.tsx | 62 +++++++++++++++---- .../shared/Graph/Nodes/helpers/helpers.tsx | 2 +- 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppButtonsListSettings/WhatsAppButtonsListSettingsBody.tsx b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppButtonsListSettings/WhatsAppButtonsListSettingsBody.tsx index dbc6d1a471..90f64ec6b8 100644 --- a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppButtonsListSettings/WhatsAppButtonsListSettingsBody.tsx +++ b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppButtonsListSettings/WhatsAppButtonsListSettingsBody.tsx @@ -65,7 +65,7 @@ export const WhatsAppButtonsListSettingsBody = ({ }) const MAX_LENGHT_HEADER_AND_FOOTER = 60 - const MAX_LENGHT_BODY = 4096 + const MAX_LENGHT_BODY = 1024 const MAX_BUTTONS = 3 const handleVariableChange = (variable?: Variable) => { diff --git a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppOptionsListSettings/WhatsAppOptionsListSettingsBody.tsx b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppOptionsListSettings/WhatsAppOptionsListSettingsBody.tsx index 10cd08fa33..879abd918f 100644 --- a/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppOptionsListSettings/WhatsAppOptionsListSettingsBody.tsx +++ b/apps/builder/components/shared/Graph/Nodes/StepNode/SettingsPopoverContent/bodies/WhatsAppBodies/WhatsAppOptionsListSettings/WhatsAppOptionsListSettingsBody.tsx @@ -10,7 +10,14 @@ import { Stack, Text, } from '@chakra-ui/react' -import { WhatsAppOptionsListOptions, Variable, TextBubbleContent, WhatsAppOptionsListStep, StepWithItems, ItemType } from 'models' +import { + WhatsAppOptionsListOptions, + Variable, + TextBubbleContent, + WhatsAppOptionsListStep, + StepWithItems, + ItemType, +} from 'models' import { useState } from 'react' import { TextBubbleEditor } from 'components/shared/Graph/Nodes/StepNode/TextBubbleEditor' import { VariableSearchInput } from 'components/shared/VariableSearchInput/VariableSearchInput' @@ -62,7 +69,7 @@ export const WhatsAppOptionsListSettingsBody = ({ }) const MAX_LENGHT_HEADER_AND_FOOTER = 60 - const MAX_LENGHT_BODY = 4096 + const MAX_LENGHT_BODY = 1024 const MAX_LENGHT_LIST_TITLE = 20 const MAX_OPTIONS = 10 @@ -174,8 +181,9 @@ export const WhatsAppOptionsListSettingsBody = ({ handleFallBackMessage(content, index)} initialValue={message ? message.richText : []} @@ -225,7 +233,9 @@ export const WhatsAppOptionsListSettingsBody = ({ const handleRemoveOption = (index: number) => { if (localListItems.length <= 1) return - const updatedItems = localListItems.filter((_: any, i: number) => i !== index) + const updatedItems = localListItems.filter( + (_: any, i: number) => i !== index + ) setLocalListItems(updatedItems) onOptionsChange({ ...options, listItems: updatedItems }) @@ -284,11 +294,17 @@ export const WhatsAppOptionsListSettingsBody = ({ maxLength={MAX_LENGHT_BODY} /> - {options?.useFallback && localListItems.length > 0 && localListItems.some((item: any) => item.label && item.label.trim() !== '') && + {options?.useFallback && + localListItems.length > 0 && + localListItems.some( + (item: any) => item.label && item.label.trim() !== '' + ) && (options?.fallbackMessages?.length ? ( <> - Se o cliente não responder com nenhuma das opções: + + Se o cliente não responder com nenhuma das opções: +