* Resolves the effective triggerId from various sources in order of priority
(
blockId: string,
triggerId: string | undefined,
webhook?: { providerConfig?: { triggerId?: string } }
)
| 29 | * Resolves the effective triggerId from various sources in order of priority |
| 30 | */ |
| 31 | function resolveEffectiveTriggerId( |
| 32 | blockId: string, |
| 33 | triggerId: string | undefined, |
| 34 | webhook?: { providerConfig?: { triggerId?: string } } |
| 35 | ): string | undefined { |
| 36 | if (triggerId && isTriggerValid(triggerId)) { |
| 37 | return triggerId |
| 38 | } |
| 39 | |
| 40 | const selectedTriggerId = useSubBlockStore.getState().getValue(blockId, 'selectedTriggerId') |
| 41 | if (typeof selectedTriggerId === 'string' && isTriggerValid(selectedTriggerId)) { |
| 42 | return selectedTriggerId |
| 43 | } |
| 44 | |
| 45 | const storedTriggerId = useSubBlockStore.getState().getValue(blockId, 'triggerId') |
| 46 | if (typeof storedTriggerId === 'string' && isTriggerValid(storedTriggerId)) { |
| 47 | return storedTriggerId |
| 48 | } |
| 49 | |
| 50 | if (webhook?.providerConfig?.triggerId && typeof webhook.providerConfig.triggerId === 'string') { |
| 51 | return webhook.providerConfig.triggerId |
| 52 | } |
| 53 | |
| 54 | const workflowState = useWorkflowStore.getState() |
| 55 | const block = workflowState.blocks?.[blockId] |
| 56 | if (block) { |
| 57 | const blockConfig = getBlock(block.type) |
| 58 | if (blockConfig) { |
| 59 | if (blockConfig.category === 'triggers') { |
| 60 | return block.type |
| 61 | } |
| 62 | if (block.triggerMode && blockConfig.triggers?.enabled) { |
| 63 | const selectedTriggerIdValue = block.subBlocks?.selectedTriggerId?.value |
| 64 | const triggerIdValue = block.subBlocks?.triggerId?.value |
| 65 | return ( |
| 66 | (typeof selectedTriggerIdValue === 'string' && isTriggerValid(selectedTriggerIdValue) |
| 67 | ? selectedTriggerIdValue |
| 68 | : undefined) || |
| 69 | (typeof triggerIdValue === 'string' && isTriggerValid(triggerIdValue) |
| 70 | ? triggerIdValue |
| 71 | : undefined) || |
| 72 | blockConfig.triggers?.available?.[0] |
| 73 | ) |
| 74 | } |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | return undefined |
| 79 | } |
| 80 | |
| 81 | /** |
| 82 | * Hook to load webhook info for trigger blocks. |
no test coverage detected