mirror of
https://github.com/simstudioai/sim.git
synced 2026-02-14 08:25:03 -05:00
Compare commits
2 Commits
fix/model
...
cursor/cop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
170367ce13 | ||
|
|
3ef6b05035 |
@@ -23,7 +23,7 @@ import { ParallelTool } from '@/app/workspace/[workspaceId]/w/[workflowId]/compo
|
|||||||
import { getDisplayValue } from '@/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block'
|
import { getDisplayValue } from '@/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block'
|
||||||
import { getBlock } from '@/blocks/registry'
|
import { getBlock } from '@/blocks/registry'
|
||||||
import type { CopilotToolCall } from '@/stores/panel'
|
import type { CopilotToolCall } from '@/stores/panel'
|
||||||
import { useCopilotStore } from '@/stores/panel'
|
import { useCopilotStore, usePanelStore } from '@/stores/panel'
|
||||||
import type { SubAgentContentBlock } from '@/stores/panel/copilot/types'
|
import type { SubAgentContentBlock } from '@/stores/panel/copilot/types'
|
||||||
import { useWorkflowStore } from '@/stores/workflows/workflow/store'
|
import { useWorkflowStore } from '@/stores/workflows/workflow/store'
|
||||||
|
|
||||||
@@ -341,16 +341,20 @@ export function OptionsSelector({
|
|||||||
const [hoveredIndex, setHoveredIndex] = useState(-1)
|
const [hoveredIndex, setHoveredIndex] = useState(-1)
|
||||||
const [chosenKey, setChosenKey] = useState<string | null>(selectedOptionKey)
|
const [chosenKey, setChosenKey] = useState<string | null>(selectedOptionKey)
|
||||||
const containerRef = useRef<HTMLDivElement>(null)
|
const containerRef = useRef<HTMLDivElement>(null)
|
||||||
|
const activeTab = usePanelStore((s) => s.activeTab)
|
||||||
|
|
||||||
const isLocked = chosenKey !== null
|
const isLocked = chosenKey !== null
|
||||||
|
|
||||||
// Handle keyboard navigation - only for the active options selector
|
// Handle keyboard navigation - only for the active options selector when copilot is active
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (isInteractionDisabled || !enableKeyboardNav || isLocked) return
|
if (isInteractionDisabled || !enableKeyboardNav || isLocked) return
|
||||||
|
|
||||||
const handleKeyDown = (e: KeyboardEvent) => {
|
const handleKeyDown = (e: KeyboardEvent) => {
|
||||||
if (e.defaultPrevented) return
|
if (e.defaultPrevented) return
|
||||||
|
|
||||||
|
// Only handle keyboard shortcuts when the copilot panel is active
|
||||||
|
if (activeTab !== 'copilot') return
|
||||||
|
|
||||||
const activeElement = document.activeElement
|
const activeElement = document.activeElement
|
||||||
const isInputFocused =
|
const isInputFocused =
|
||||||
activeElement?.tagName === 'INPUT' ||
|
activeElement?.tagName === 'INPUT' ||
|
||||||
@@ -387,7 +391,7 @@ export function OptionsSelector({
|
|||||||
|
|
||||||
document.addEventListener('keydown', handleKeyDown)
|
document.addEventListener('keydown', handleKeyDown)
|
||||||
return () => document.removeEventListener('keydown', handleKeyDown)
|
return () => document.removeEventListener('keydown', handleKeyDown)
|
||||||
}, [isInteractionDisabled, enableKeyboardNav, isLocked, sortedOptions, hoveredIndex, onSelect])
|
}, [isInteractionDisabled, enableKeyboardNav, isLocked, sortedOptions, hoveredIndex, onSelect, activeTab])
|
||||||
|
|
||||||
if (sortedOptions.length === 0) return null
|
if (sortedOptions.length === 0) return null
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user