Skip to content

Commit bb1a2ae

Browse files
committed
Update target switch dropdown to toggle on click with outside click handling
- require click to see target dropdown, keep current bahavior for 'alt' shortcut └── packages └── ui └── src └── components └── editor └── common └── prompts └── PromptField ├── PromptField.tsx └── hooks └── use-keyboard-shortcuts.ts
1 parent be1e3d2 commit bb1a2ae

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

  • packages/ui/src/components/editor/common/prompts/PromptField

‎packages/ui/src/components/editor/common/prompts/PromptField/PromptField.tsx‎

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,19 @@ export const PromptField: React.FC<PromptFieldProps> = (props) => {
327327
}
328328
}, [props.is_recording])
329329

330+
useEffect(() => {
331+
if (is_target_dropdown_open) {
332+
const handle_click = () => {
333+
set_is_target_dropdown_open(false)
334+
}
335+
336+
document.addEventListener('click', handle_click)
337+
return () => {
338+
document.removeEventListener('click', handle_click)
339+
}
340+
}
341+
}, [is_target_dropdown_open])
342+
330343
const render_footer = () => {
331344
const primary_dropdown_items =
332345
(props.target == 'API' || props.target == 'CLI') && !props.value
@@ -672,8 +685,6 @@ export const PromptField: React.FC<PromptFieldProps> = (props) => {
672685
{props.target && props.on_target_change && (
673686
<div
674687
className={styles['footer__right__target-switch']}
675-
onMouseEnter={() => set_is_target_dropdown_open(true)}
676-
onMouseLeave={() => set_is_target_dropdown_open(false)}
677688
>
678689
{(is_target_dropdown_open || is_alt_pressed) && (
679690
<div
@@ -719,6 +730,10 @@ export const PromptField: React.FC<PromptFieldProps> = (props) => {
719730
is_target_dropdown_open || is_alt_pressed
720731
}
721732
)}
733+
onClick={(e) => {
734+
e.stopPropagation()
735+
set_is_target_dropdown_open(!is_target_dropdown_open)
736+
}}
722737
>
723738
<span
724739
className={styles['footer__right__target-switch__label']}

0 commit comments

Comments
 (0)