diff --git a/frontend/src/lib/components/FlowBuilder.svelte b/frontend/src/lib/components/FlowBuilder.svelte
index f414a2582c..fe4e201a24 100644
--- a/frontend/src/lib/components/FlowBuilder.svelte
+++ b/frontend/src/lib/components/FlowBuilder.svelte
@@ -54,7 +54,7 @@
}
flowStore.subscribe((flow: Flow) => {
- //setQueryWithoutLoad($page.url, 'state', btoa(JSON.stringify(flowToMode(flow, mode))))
+ setQueryWithoutLoad($page.url, 'state', btoa(JSON.stringify(flowToMode(flow, mode))))
})
onMount(() => {
diff --git a/frontend/src/lib/components/ModuleStep.svelte b/frontend/src/lib/components/ModuleStep.svelte
index db6edd9df7..6e33b7c45d 100644
--- a/frontend/src/lib/components/ModuleStep.svelte
+++ b/frontend/src/lib/components/ModuleStep.svelte
@@ -37,6 +37,16 @@
$: extraLib = buildExtraLib(
i === 0 ? schemaToTsType($flowStore?.schema) : objectToTsType($previewResults[i])
)
+
+ function toResults(jobs: any) {
+ return jobs.map((x) => {
+ if (x.result) {
+ return x.result
+ } else if (x.length) {
+ return toResults(x)
+ }
+ })
+ }
@@ -125,8 +135,7 @@
{mode}
schemas={$schemasStore}
on:change={(e) => {
- const results = e.detail.map((x) => x.result)
- previewResults.set(results)
+ previewResults.set(toResults(e.detail))
}}
/>
diff --git a/frontend/src/lib/components/flows/utils.ts b/frontend/src/lib/components/flows/utils.ts
index 419aafe7b7..e695e04da6 100644
--- a/frontend/src/lib/components/flows/utils.ts
+++ b/frontend/src/lib/components/flows/utils.ts
@@ -174,21 +174,38 @@ export function getPickableProperties(
) {
const flowInputAsObject = schemaToObject(schema, args)
const flowInput =
- mode === 'pull'
- ? Object.assign(
+ mode === 'pull' && i >= 1
+ ? Object.assign(Object.assign(
{
_value: 'The current value of the iteration.',
_index: 'The current index of the iteration.'
},
- flowInputAsObject
- )
+ flowInputAsObject), previewResults[0])
+
: flowInputAsObject
- console.log(previewResults)
+
+ let previous_result
+ if (i === 0 || (i == 1 && mode == 'pull')) {
+ previous_result = flowInput
+ } else if (mode == 'pull') {
+ previous_result = previewResults[1] ? previewResults[1][i - 2] : undefined
+ } else {
+ previous_result = previewResults[i - 1]
+ }
+
+ let step
+ if (i >= 1 && mode == 'push') {
+ step = Object.values(previewResults).slice(0, i)
+ } else if (i >= 2 && mode == 'pull') {
+ step = Object.values(previewResults[1] ?? {}).slice(0, i - 1)
+ } else {
+ step = []
+ }
const pickableProperties = {
flow_input: flowInput,
- previous_result: i === 0 ? flowInput : previewResults[i - 1],
- step: i >= 1 ? Object.values(previewResults).slice(0, i) : []
+ previous_result,
+ step
}
return pickableProperties