2
0

(setVariable) Add Transcription system var (#1507)

Closes #1484
This commit is contained in:
Baptiste Arnaud
2024-05-15 14:24:55 +02:00
committed by GitHub
parent ec7ff8d9ca
commit 40f21203b5
102 changed files with 2911 additions and 986 deletions

View File

@ -6,7 +6,7 @@ import {
Typebot,
} from '@typebot.io/schemas'
import { deepParseVariables } from '@typebot.io/variables/deepParseVariables'
import { isEmpty, isNotEmpty } from '@typebot.io/lib/utils'
import { isDefined, isEmpty, isNotEmpty } from '@typebot.io/lib/utils'
import {
getVariablesToParseInfoInText,
parseVariables,
@ -49,7 +49,7 @@ export const parseBubbleBlock = (
richText: parseVariablesInRichText(block.content?.richText ?? [], {
variables,
takeLatestIfList: typebotVersion !== '6',
}),
}).parsedElements,
},
}
}
@ -93,14 +93,15 @@ export const parseBubbleBlock = (
}
}
const parseVariablesInRichText = (
export const parseVariablesInRichText = (
elements: TDescendant[],
{
variables,
takeLatestIfList,
}: { variables: Variable[]; takeLatestIfList?: boolean }
): TDescendant[] => {
): { parsedElements: TDescendant[]; parsedVariableIds: string[] } => {
const parsedElements: TDescendant[] = []
const parsedVariableIds: string[] = []
for (const element of elements) {
if ('text' in element) {
const text = element.text as string
@ -112,6 +113,9 @@ const parseVariablesInRichText = (
variables,
takeLatestIfList,
})
parsedVariableIds.push(
...variablesInText.map((v) => v.variableId).filter(isDefined)
)
if (variablesInText.length === 0) {
parsedElements.push(element)
continue
@ -185,19 +189,28 @@ const parseVariablesInRichText = (
? 'variable'
: element.type
const {
parsedElements: parsedChildren,
parsedVariableIds: parsedChildrenVariableIds,
} = parseVariablesInRichText(element.children as TDescendant[], {
variables,
takeLatestIfList,
})
parsedVariableIds.push(...parsedChildrenVariableIds)
parsedElements.push({
...element,
url: element.url
? parseVariables(variables)(element.url as string)
: undefined,
type,
children: parseVariablesInRichText(element.children as TDescendant[], {
variables,
takeLatestIfList,
}),
children: parsedChildren,
})
}
return parsedElements
return {
parsedElements,
parsedVariableIds,
}
}
const applyElementStyleToDescendants = (