diff --git a/src/stores/constructRenderState.js b/src/stores/constructRenderState.js index d34c1d7..45af997 100644 --- a/src/stores/constructRenderState.js +++ b/src/stores/constructRenderState.js @@ -748,6 +748,7 @@ const getStoryContainer = (elements = []) => { const createLayoutTemplateData = ({ variables, saveSlots = [], + isLineCompleted, autoMode, skipMode, canRollback, @@ -755,6 +756,7 @@ const createLayoutTemplateData = ({ return { variables, saveSlots, + isLineCompleted, autoMode, skipMode, canRollback, @@ -1030,6 +1032,10 @@ export const addBackgroundOrCg = ( isLineCompleted, skipTransitionsAndAnimations, variables, + autoMode, + skipMode, + canRollback, + saveSlots = [], }, ) => { const { elements, animations } = state; @@ -1084,7 +1090,14 @@ export const addBackgroundOrCg = ( }; const processedContainer = parseAndRender( bgContainer, - { variables }, + createLayoutTemplateData({ + variables, + saveSlots, + isLineCompleted, + autoMode, + skipMode, + canRollback, + }), { functions: jemplFunctions }, ); storyContainer.children.push( @@ -1271,6 +1284,10 @@ export const addVisuals = ( isLineCompleted, skipTransitionsAndAnimations, variables, + autoMode, + skipMode, + canRollback, + saveSlots = [], }, ) => { const { elements, animations } = state; @@ -1373,7 +1390,14 @@ export const addVisuals = ( }; const processedContainer = parseAndRender( visualContainer, - { variables }, + createLayoutTemplateData({ + variables, + saveSlots, + isLineCompleted, + autoMode, + skipMode, + canRollback, + }), { functions: jemplFunctions }, ); storyContainer.children.push( @@ -1582,6 +1606,11 @@ export const addChoices = ( isLineCompleted, skipTransitionsAndAnimations, screen, + variables, + autoMode, + skipMode, + canRollback, + saveSlots = [], }, ) => { const { elements, animations } = state; @@ -1608,11 +1637,25 @@ export const addChoices = ( const layout = resources?.layouts[presentationState.choice.resourceId]; if (layout && layout.elements) { const wrappedTemplate = { elements: layout.elements }; - const result = parseAndRender(wrappedTemplate, { - choice: { - items: presentationState.choice?.items ?? [], + const result = parseAndRender( + wrappedTemplate, + { + ...createLayoutTemplateData({ + variables, + saveSlots, + isLineCompleted, + autoMode, + skipMode, + canRollback, + }), + choice: { + items: presentationState.choice?.items ?? [], + }, }, - }); + { + functions: jemplFunctions, + }, + ); const choiceElements = resolveLayoutResourceIds( settleTextRevealIfCompleted(result?.elements, { isLineCompleted, @@ -1662,6 +1705,7 @@ export const addControl = ( presentationState, resources = {}, variables, + isLineCompleted, autoMode, skipMode, canRollback, @@ -1708,6 +1752,7 @@ export const addControl = ( templateData: createLayoutTemplateData({ variables, saveSlots, + isLineCompleted, autoMode, skipMode, canRollback, @@ -1850,6 +1895,7 @@ export const addLayout = ( templateData: createLayoutTemplateData({ variables, saveSlots, + isLineCompleted, autoMode, skipMode, canRollback,