Skip to content

Commit c1976d7

Browse files
committed
fix(collection-helpers): fix get steps order
1 parent adaed46 commit c1976d7

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

services/workflows-service/scripts/workflows/runtime/generate-initial-collection-flow-example.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,15 @@ export const getStepsInOrder = async (uiDefinition: UiDefinition) => {
2222
});
2323

2424
while (!stateMachine.getSnapshot().done) {
25-
stepsInOrder.push(stateMachine.getSnapshot().value);
26-
await stateMachine.sendEvent({ type: 'NEXT' });
25+
const snapshot = stateMachine.getSnapshot();
26+
stepsInOrder.push(snapshot.value);
27+
28+
// Check if NEXT event is available in current state
29+
if (snapshot.nextEvents.includes('NEXT')) {
30+
await stateMachine.sendEvent({ type: 'NEXT' });
31+
} else {
32+
break; // Exit if no NEXT event available
33+
}
2734
}
2835

2936
return stepsInOrder.map((stepName, index) => ({ stateName: stepName, orderNumber: index + 1 }));

services/workflows-service/src/collection-flow/helpers/get-steps-in-order.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,15 @@ export const getStepsInOrder = async (uiDefinition: UiDefinition) => {
2020
});
2121

2222
while (!stateMachine.getSnapshot().done) {
23-
stepsInOrder.push(stateMachine.getSnapshot().value);
24-
await stateMachine.sendEvent({ type: 'NEXT' });
23+
const snapshot = stateMachine.getSnapshot();
24+
stepsInOrder.push(snapshot.value);
25+
26+
// Check if NEXT event is available in current state
27+
if (snapshot.nextEvents.includes('NEXT')) {
28+
await stateMachine.sendEvent({ type: 'NEXT' });
29+
} else {
30+
break; // Exit if no NEXT event available
31+
}
2532
}
2633

2734
return stepsInOrder.map((stepName, index) => ({ stateName: stepName, orderNumber: index + 1 }));

0 commit comments

Comments
 (0)