diff --git a/frontend/src/lib/components/apps/components/layout/AppDecisionTree.svelte b/frontend/src/lib/components/apps/components/layout/AppDecisionTree.svelte index 4c536880e2..0460b93ebf 100644 --- a/frontend/src/lib/components/apps/components/layout/AppDecisionTree.svelte +++ b/frontend/src/lib/components/apps/components/layout/AppDecisionTree.svelte @@ -41,6 +41,8 @@ $: lastNodeId = nodes?.find((node) => node.next.length === 0)?.id $: isNextDisabled = resolvedNext?.[currentNodeId] === false + const history: string[] = [] + function next() { const resolvedNodeConditions = resolvedConditions[currentNodeId] @@ -55,6 +57,8 @@ found = true currentNodeId = node.next[index].id + history.push(node.id) + selectedConditionIndex = index + 1 $focusedGrid = { @@ -66,12 +70,10 @@ } function prev() { - const previousNode = nodes.find((node) => { - return node.next.find((next) => next.id == currentNodeId) - }) + const previsouNodeId = history.pop() - if (previousNode) { - currentNodeId = previousNode.id + if (previsouNodeId) { + currentNodeId = previsouNodeId selectedConditionIndex = nodes.findIndex((next) => next.id == currentNodeId) @@ -175,8 +177,8 @@ size="xs2" color="dark" endIcon={{ icon: ArrowRight }} - disabled={isNextDisabled} + disabled={isNextDisabled || currentNodeId === lastNodeId} > - {currentNodeId === lastNodeId ? 'Finish' : 'Next'} + Next diff --git a/frontend/src/lib/components/apps/editor/DecisionTreeDebug.svelte b/frontend/src/lib/components/apps/editor/DecisionTreeDebug.svelte index a9037f584c..11ad40fe9a 100644 --- a/frontend/src/lib/components/apps/editor/DecisionTreeDebug.svelte +++ b/frontend/src/lib/components/apps/editor/DecisionTreeDebug.svelte @@ -13,6 +13,7 @@ const dispatch = createEventDispatcher() let isManuallySelected: boolean = false + let selected: number | null = null {#if canDelete}