🐛 (js) Improve session remember behavior
Make sure it correctly retrieves saved variables and doesn't clash with other embedded typebots
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import prisma from '@/lib/prisma'
|
||||
import {
|
||||
Result,
|
||||
SessionState,
|
||||
StartParams,
|
||||
Typebot,
|
||||
@@ -119,7 +120,7 @@ export const deepParseVariable =
|
||||
return { ...newObj, [key]: currentValue }
|
||||
}, {} as T)
|
||||
|
||||
export const parsePrefilledVariables = (
|
||||
export const prefillVariables = (
|
||||
variables: Typebot['variables'],
|
||||
prefilledVariables: NonNullable<StartParams['prefilledVariables']>
|
||||
): Variable[] =>
|
||||
@@ -132,6 +133,22 @@ export const parsePrefilledVariables = (
|
||||
}
|
||||
})
|
||||
|
||||
export const injectVariablesFromExistingResult = (
|
||||
variables: Typebot['variables'],
|
||||
resultVariables: Result['variables']
|
||||
): Variable[] =>
|
||||
variables.map((variable) => {
|
||||
const resultVariable = resultVariables.find(
|
||||
(resultVariable) =>
|
||||
resultVariable.name === variable.name && !variable.value
|
||||
)
|
||||
if (!resultVariable) return variable
|
||||
return {
|
||||
...variable,
|
||||
value: resultVariable.value,
|
||||
}
|
||||
})
|
||||
|
||||
export const updateVariables =
|
||||
(state: SessionState) =>
|
||||
async (newVariables: VariableWithUnknowValue[]): Promise<SessionState> => ({
|
||||
|
||||
Reference in New Issue
Block a user