Skip to content

Commit 29e4a98

Browse files
author
waleed
committed
remove all extraneous debug logging and added mapping for triggerConfig field names that were changed
1 parent b2489e6 commit 29e4a98

File tree

3 files changed

+97
-99
lines changed

3 files changed

+97
-99
lines changed

apps/sim/hooks/use-trigger-config-aggregation.ts

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -92,57 +92,29 @@ export function populateTriggerFieldsFromConfig(
9292
triggerId: string | undefined
9393
) {
9494
if (!triggerConfig || !triggerId || !blockId) {
95-
logger.debug('populateTriggerFieldsFromConfig: Skipping - missing params', {
96-
blockId,
97-
triggerId,
98-
hasTriggerConfig: !!triggerConfig,
99-
})
10095
return
10196
}
10297

10398
if (!isTriggerValid(triggerId)) {
104-
logger.debug('populateTriggerFieldsFromConfig: Skipping - invalid trigger', {
105-
blockId,
106-
triggerId,
107-
})
10899
return
109100
}
110101

111-
logger.debug('populateTriggerFieldsFromConfig: Starting migration', {
112-
blockId,
113-
triggerId,
114-
triggerConfigKeys: Object.keys(triggerConfig),
115-
triggerConfig,
116-
})
117-
118102
const triggerDef = getTrigger(triggerId)
119103

120104
const subBlockStore = useSubBlockStore.getState()
121105

122-
let migratedCount = 0
123106
triggerDef.subBlocks
124107
.filter((sb) => sb.mode === 'trigger' && !SYSTEM_SUBBLOCK_IDS.includes(sb.id))
125108
.forEach((subBlock) => {
126109
let configValue: any
127110

128111
if (subBlock.id in triggerConfig) {
129112
configValue = triggerConfig[subBlock.id]
130-
logger.debug('populateTriggerFieldsFromConfig: Found new field name', {
131-
blockId,
132-
subBlockId: subBlock.id,
133-
value: configValue,
134-
})
135113
} else {
136114
for (const [oldFieldName, value] of Object.entries(triggerConfig)) {
137115
const mappedFieldName = mapOldFieldNameToNewSubBlockId(oldFieldName)
138116
if (mappedFieldName === subBlock.id) {
139117
configValue = value
140-
logger.debug('populateTriggerFieldsFromConfig: Mapped old field name', {
141-
blockId,
142-
oldFieldName,
143-
newSubBlockId: subBlock.id,
144-
value: configValue,
145-
})
146118
break
147119
}
148120
}
@@ -157,23 +129,8 @@ export function populateTriggerFieldsFromConfig(
157129
if (typeof configValue === 'string' && configValue.trim() !== '') {
158130
try {
159131
normalizedValue = JSON.parse(configValue)
160-
logger.debug('populateTriggerFieldsFromConfig: Parsed string to array', {
161-
blockId,
162-
subBlockId: subBlock.id,
163-
originalValue: configValue,
164-
normalizedValue,
165-
})
166132
} catch {
167133
normalizedValue = [configValue]
168-
logger.debug(
169-
'populateTriggerFieldsFromConfig: Converted string to single-item array',
170-
{
171-
blockId,
172-
subBlockId: subBlock.id,
173-
originalValue: configValue,
174-
normalizedValue,
175-
}
176-
)
177134
}
178135
} else if (
179136
!Array.isArray(configValue) &&
@@ -182,39 +139,13 @@ export function populateTriggerFieldsFromConfig(
182139
) {
183140
// If it's not already an array and not null/undefined, wrap it
184141
normalizedValue = [configValue]
185-
logger.debug('populateTriggerFieldsFromConfig: Wrapped non-array value in array', {
186-
blockId,
187-
subBlockId: subBlock.id,
188-
originalValue: configValue,
189-
normalizedValue,
190-
})
191142
}
192143
// If it's already an array or null/undefined, use as-is
193144
}
194145

195146
if (currentValue === null || currentValue === undefined || currentValue === '') {
196147
subBlockStore.setValue(blockId, subBlock.id, normalizedValue)
197-
migratedCount++
198-
logger.debug('populateTriggerFieldsFromConfig: Set value', {
199-
blockId,
200-
subBlockId: subBlock.id,
201-
value: normalizedValue,
202-
currentValue,
203-
})
204-
} else {
205-
logger.debug('populateTriggerFieldsFromConfig: Skipped - value already exists', {
206-
blockId,
207-
subBlockId: subBlock.id,
208-
currentValue,
209-
wouldSet: normalizedValue,
210-
})
211148
}
212149
}
213150
})
214-
215-
logger.debug('populateTriggerFieldsFromConfig: Migration complete', {
216-
blockId,
217-
triggerId,
218-
migratedCount,
219-
})
220151
}

apps/sim/hooks/use-webhook-management.ts

Lines changed: 88 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import { useCallback, useEffect, useMemo, useState } from 'react'
22
import { useParams } from 'next/navigation'
33
import { createLogger } from '@/lib/logs/console/logger'
44
import { getBaseUrl } from '@/lib/urls/utils'
5+
import { getBlock } from '@/blocks'
56
import { useSubBlockStore } from '@/stores/workflows/subblock/store'
7+
import { useWorkflowStore } from '@/stores/workflows/workflow/store'
68
import { getTrigger, isTriggerValid } from '@/triggers'
79
import { populateTriggerFieldsFromConfig } from './use-trigger-config-aggregation'
810

@@ -78,15 +80,26 @@ export function useWebhookManagement({
7880
const store = useSubBlockStore.getState()
7981
const currentlyLoading = store.loadingWebhooks.has(blockId)
8082
const alreadyChecked = store.checkedWebhooks.has(blockId)
83+
const currentWebhookId = store.getValue(blockId, 'webhookId')
8184

8285
if (currentlyLoading) {
8386
return
8487
}
8588

86-
if (alreadyChecked) {
89+
// If already checked and webhookId exists, skip fetching
90+
if (alreadyChecked && currentWebhookId) {
8791
return
8892
}
8993

94+
// If already checked but webhookId is null, allow re-checking (handles timing issues)
95+
if (alreadyChecked && !currentWebhookId) {
96+
useSubBlockStore.setState((state) => {
97+
const newSet = new Set(state.checkedWebhooks)
98+
newSet.delete(blockId)
99+
return { checkedWebhooks: newSet }
100+
})
101+
}
102+
90103
let isMounted = true
91104

92105
const loadWebhookOrGenerateUrl = async () => {
@@ -101,11 +114,23 @@ export function useWebhookManagement({
101114

102115
try {
103116
const response = await fetch(`/api/webhooks?workflowId=${workflowId}&blockId=${blockId}`)
104-
if (response.ok && isMounted) {
117+
const stillMounted = isMounted // Capture mount state at response time
118+
119+
// Process response even if component unmounted, since we're using Zustand (global store)
120+
// The webhookId should be set in the store regardless of component lifecycle
121+
if (response.ok) {
105122
const data = await response.json()
123+
106124
if (data.webhooks && data.webhooks.length > 0) {
107125
const webhook = data.webhooks[0].webhook
126+
108127
useSubBlockStore.getState().setValue(blockId, 'webhookId', webhook.id)
128+
logger.info('Webhook loaded from API', {
129+
blockId,
130+
webhookId: webhook.id,
131+
hasProviderConfig: !!webhook.providerConfig,
132+
wasMounted: stillMounted,
133+
})
109134

110135
if (webhook.path) {
111136
const currentPath = useSubBlockStore.getState().getValue(blockId, 'triggerPath')
@@ -115,27 +140,78 @@ export function useWebhookManagement({
115140
}
116141

117142
if (webhook.providerConfig) {
143+
// Determine triggerId from multiple sources
144+
let effectiveTriggerId: string | undefined = triggerId
145+
if (!effectiveTriggerId) {
146+
// Try to get from stored value
147+
const storedTriggerId = useSubBlockStore.getState().getValue(blockId, 'triggerId')
148+
effectiveTriggerId =
149+
(typeof storedTriggerId === 'string' ? storedTriggerId : undefined) || undefined
150+
}
151+
if (!effectiveTriggerId && webhook.providerConfig.triggerId) {
152+
effectiveTriggerId =
153+
typeof webhook.providerConfig.triggerId === 'string'
154+
? webhook.providerConfig.triggerId
155+
: undefined
156+
}
157+
if (!effectiveTriggerId) {
158+
// Try to determine from block config
159+
const workflowState = useWorkflowStore.getState()
160+
const block = workflowState.blocks?.[blockId]
161+
if (block) {
162+
const blockConfig = getBlock(block.type)
163+
if (blockConfig) {
164+
if (blockConfig.category === 'triggers') {
165+
effectiveTriggerId = block.type
166+
} else if (block.triggerMode && blockConfig.triggers?.enabled) {
167+
const triggerIdValue = block.subBlocks?.triggerId?.value
168+
effectiveTriggerId =
169+
(typeof triggerIdValue === 'string' ? triggerIdValue : undefined) ||
170+
blockConfig.triggers?.available?.[0]
171+
}
172+
}
173+
}
174+
}
175+
118176
const currentConfig = useSubBlockStore.getState().getValue(blockId, 'triggerConfig')
119177
if (JSON.stringify(webhook.providerConfig) !== JSON.stringify(currentConfig)) {
120178
useSubBlockStore
121179
.getState()
122180
.setValue(blockId, 'triggerConfig', webhook.providerConfig)
123181

124-
populateTriggerFieldsFromConfig(blockId, webhook.providerConfig, triggerId)
182+
if (effectiveTriggerId) {
183+
populateTriggerFieldsFromConfig(
184+
blockId,
185+
webhook.providerConfig,
186+
effectiveTriggerId
187+
)
188+
} else {
189+
logger.warn('Cannot migrate - triggerId not available', {
190+
blockId,
191+
propTriggerId: triggerId,
192+
providerConfigTriggerId: webhook.providerConfig.triggerId,
193+
})
194+
}
125195
}
126196
}
127-
} else if (isMounted) {
197+
} else {
128198
useSubBlockStore.getState().setValue(blockId, 'webhookId', null)
129199
}
130200

131-
if (isMounted) {
132-
useSubBlockStore.setState((state) => ({
133-
checkedWebhooks: new Set([...state.checkedWebhooks, blockId]),
134-
}))
135-
}
201+
// Mark as checked even if component unmounted, since Zustand state persists
202+
useSubBlockStore.setState((state) => ({
203+
checkedWebhooks: new Set([...state.checkedWebhooks, blockId]),
204+
}))
205+
} else {
206+
logger.warn('API response not OK', {
207+
blockId,
208+
workflowId,
209+
status: response.status,
210+
statusText: response.statusText,
211+
})
136212
}
137213
} catch (error) {
138-
logger.error('Error loading webhook:', { error })
214+
logger.error('Error loading webhook:', { error, blockId, workflowId })
139215
} finally {
140216
useSubBlockStore.setState((state) => {
141217
const newSet = new Set(state.loadingWebhooks)
@@ -150,6 +226,8 @@ export function useWebhookManagement({
150226
return () => {
151227
isMounted = false
152228
}
229+
// Note: Intentionally not including webhookId in dependencies to avoid re-running when it changes
230+
// eslint-disable-next-line react-hooks/exhaustive-deps
153231
}, [isPreview, triggerId, workflowId, blockId])
154232

155233
const saveConfig = async (): Promise<boolean> => {

apps/sim/stores/workflows/subblock/store.ts

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -133,32 +133,21 @@ export const useSubBlockStore = create<SubBlockStore>()(
133133
}
134134

135135
if (!triggerId || !isTriggerValid(triggerId)) {
136-
console.log('[initializeFromWorkflow] Skipping - invalid triggerId', {
137-
blockId,
138-
blockType: block.type,
139-
triggerId,
140-
isTriggerValid: triggerId ? isTriggerValid(triggerId) : false,
141-
})
142136
return
143137
}
144138

145139
const triggerConfigSubBlock = block.subBlocks?.triggerConfig
146140
if (triggerConfigSubBlock?.value && typeof triggerConfigSubBlock.value === 'object') {
147-
console.log('[initializeFromWorkflow] Found triggerConfig, migrating', {
148-
blockId,
149-
triggerId,
150-
triggerConfigKeys: Object.keys(triggerConfigSubBlock.value),
151-
triggerConfig: triggerConfigSubBlock.value,
152-
})
153141
populateTriggerFieldsFromConfig(blockId, triggerConfigSubBlock.value, triggerId)
154-
} else {
155-
console.log('[initializeFromWorkflow] No triggerConfig subblock found', {
156-
blockId,
157-
triggerId,
158-
hasTriggerConfigSubBlock: !!triggerConfigSubBlock,
159-
triggerConfigValue: triggerConfigSubBlock?.value,
160-
allSubBlockIds: Object.keys(block.subBlocks || {}),
161-
})
142+
143+
const currentChecked = get().checkedWebhooks
144+
if (currentChecked.has(blockId)) {
145+
set((state) => {
146+
const newSet = new Set(state.checkedWebhooks)
147+
newSet.delete(blockId)
148+
return { checkedWebhooks: newSet }
149+
})
150+
}
162151
}
163152
})
164153

0 commit comments

Comments
 (0)