Skip to content

Commit f081f5a

Browse files
Revert 1a7de84 except tag dropdown changes (keep apps/sim/components/ui/tag-dropdown.tsx) (#972)
1 parent 72c07e8 commit f081f5a

5 files changed

Lines changed: 28 additions & 36 deletions

File tree

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/subflows/components/iteration-badges/iteration-badges.tsx

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -158,23 +158,19 @@ export function IterationBadges({ nodeId, data, iterationType }: IterationBadges
158158
const handleEditorChange = useCallback(
159159
(value: string) => {
160160
if (isPreview) return
161+
collaborativeUpdateIterationCollection(nodeId, iterationType, value)
161162

162-
// Capture cursor first to minimize staleness in dropdown logic
163-
const textarea = editorContainerRef.current?.querySelector(
164-
'textarea'
165-
) as HTMLTextAreaElement | null
166-
const cursorPos = textarea?.selectionStart ?? cursorPosition
163+
const textarea = editorContainerRef.current?.querySelector('textarea')
167164
if (textarea) {
168165
textareaRef.current = textarea
169-
}
170-
setCursorPosition(cursorPos)
171-
172-
collaborativeUpdateIterationCollection(nodeId, iterationType, value)
166+
const cursorPos = textarea.selectionStart || 0
167+
setCursorPosition(cursorPos)
173168

174-
const triggerCheck = checkTagTrigger(value, cursorPos)
175-
setShowTagDropdown(triggerCheck.show)
169+
const triggerCheck = checkTagTrigger(value, cursorPos)
170+
setShowTagDropdown(triggerCheck.show)
171+
}
176172
},
177-
[nodeId, iterationType, collaborativeUpdateIterationCollection, isPreview, cursorPosition]
173+
[nodeId, iterationType, collaborativeUpdateIterationCollection, isPreview]
178174
)
179175

180176
// Handle tag selection

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/components/sub-block/components/code.tsx

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -446,25 +446,24 @@ export function Code({
446446
value={code}
447447
onValueChange={(newCode) => {
448448
if (!isCollapsed && !isAiStreaming && !isPreview && !disabled) {
449-
// Capture cursor first to minimize staleness in dropdown logic
450-
const textarea = editorRef.current?.querySelector(
451-
'textarea'
452-
) as HTMLTextAreaElement | null
453-
const pos = textarea?.selectionStart ?? cursorPosition
454-
setCursorPosition(pos)
455-
456449
setCode(newCode)
457450
setStoreValue(newCode)
458451

459-
const tagTrigger = checkTagTrigger(newCode, pos)
460-
setShowTags(tagTrigger.show)
461-
if (!tagTrigger.show) {
462-
setActiveSourceBlockId(null)
463-
}
452+
const textarea = editorRef.current?.querySelector('textarea')
453+
if (textarea) {
454+
const pos = textarea.selectionStart
455+
setCursorPosition(pos)
464456

465-
const envVarTrigger = checkEnvVarTrigger(newCode, pos)
466-
setShowEnvVars(envVarTrigger.show)
467-
setSearchTerm(envVarTrigger.show ? envVarTrigger.searchTerm : '')
457+
const tagTrigger = checkTagTrigger(newCode, pos)
458+
setShowTags(tagTrigger.show)
459+
if (!tagTrigger.show) {
460+
setActiveSourceBlockId(null)
461+
}
462+
463+
const envVarTrigger = checkEnvVarTrigger(newCode, pos)
464+
setShowEnvVars(envVarTrigger.show)
465+
setSearchTerm(envVarTrigger.show ? envVarTrigger.searchTerm : '')
466+
}
468467
}
469468
}}
470469
onKeyDown={(e) => {

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/components/sub-block/components/combobox.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,13 @@ export function ComboBox({
150150
const newValue = e.target.value
151151
const newCursorPosition = e.target.selectionStart ?? 0
152152

153-
// Update cursor first to reduce staleness for dropdown logic
154-
setCursorPosition(newCursorPosition)
155-
156153
// Update store value immediately (allow free text)
157154
if (!isPreview) {
158155
setStoreValue(newValue)
159156
}
160157

158+
setCursorPosition(newCursorPosition)
159+
161160
// Check for environment variables trigger
162161
const envVarTrigger = checkEnvVarTrigger(newValue, newCursorPosition)
163162
setShowEnvVars(envVarTrigger.show)

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/components/sub-block/components/long-input.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,6 @@ export function LongInput({
148148
const newValue = e.target.value
149149
const newCursorPosition = e.target.selectionStart ?? 0
150150

151-
// Update cursor first to minimize state staleness for dropdown selection logic
152-
setCursorPosition(newCursorPosition)
153-
154151
// Update local content immediately
155152
setLocalContent(newValue)
156153

@@ -161,6 +158,8 @@ export function LongInput({
161158
setStoreValue(newValue)
162159
}
163160

161+
setCursorPosition(newCursorPosition)
162+
164163
// Check for environment variables trigger
165164
const envVarTrigger = checkEnvVarTrigger(newValue, newCursorPosition)
166165
setShowEnvVars(envVarTrigger.show)

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/components/sub-block/components/short-input.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,15 @@ export function ShortInput({
106106
const newValue = e.target.value
107107
const newCursorPosition = e.target.selectionStart ?? 0
108108

109-
// Update cursor first to minimize state staleness for dropdown selection logic
110-
setCursorPosition(newCursorPosition)
111-
112109
if (onChange) {
113110
onChange(newValue)
114111
} else if (!isPreview) {
115112
// Only update store when not in preview mode
116113
setStoreValue(newValue)
117114
}
118115

116+
setCursorPosition(newCursorPosition)
117+
119118
// Check for environment variables trigger
120119
const envVarTrigger = checkEnvVarTrigger(newValue, newCursorPosition)
121120

0 commit comments

Comments
 (0)