Skip to content

Commit fb5ebd3

Browse files
authored
fix(ui): support Tab key to select items in tag, env-var, and resource dropdowns (#4096)
* fix(ui): support Tab key to select items in tag, env-var, and resource dropdowns * fix(ui): support Tab key to select items in tag, env-var, and resource dropdowns * fix(ui): guard Tab selection against Shift+Tab and undefined index
1 parent 2e85361 commit fb5ebd3

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/add-resource-dropdown/add-resource-dropdown.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,9 @@ export function AddResourceDropdown({
167167
} else if (e.key === 'ArrowUp') {
168168
e.preventDefault()
169169
setActiveIndex((prev) => Math.max(prev - 1, 0))
170-
} else if (e.key === 'Enter') {
171-
e.preventDefault()
170+
} else if (e.key === 'Enter' || (e.key === 'Tab' && !e.shiftKey)) {
172171
if (filtered.length > 0 && filtered[activeIndex]) {
172+
e.preventDefault()
173173
const { type, item } = filtered[activeIndex]
174174
select({ type, id: item.id, title: item.name }, item.isOpen)
175175
}

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/env-var-dropdown.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,13 @@ export const EnvVarDropdown: React.FC<EnvVarDropdownProps> = ({
242242
})
243243
break
244244
case 'Enter':
245-
e.preventDefault()
246-
e.stopPropagation()
247-
handleEnvVarSelect(filteredEnvVars[selectedIndex])
245+
case 'Tab':
246+
if (e.key === 'Tab' && e.shiftKey) break
247+
if (filteredEnvVars[selectedIndex]) {
248+
e.preventDefault()
249+
e.stopPropagation()
250+
handleEnvVarSelect(filteredEnvVars[selectedIndex])
251+
}
248252
break
249253
case 'Escape':
250254
e.preventDefault()

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/tag-dropdown/components/keyboard-navigation-handler.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,11 @@ export const KeyboardNavigationHandler: React.FC<KeyboardNavigationHandlerProps>
279279
}
280280
break
281281
case 'Enter':
282-
e.preventDefault()
283-
e.stopPropagation()
282+
case 'Tab':
283+
if (e.key === 'Tab' && e.shiftKey) break
284284
if (selected && selectedIndex >= 0 && selectedIndex < flatTagList.length) {
285+
e.preventDefault()
286+
e.stopPropagation()
285287
handleTagSelect(selected.tag, selected.group)
286288
}
287289
break

0 commit comments

Comments
 (0)