| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import { Plug } from 'lucide-react'
- import { parseAsBoolean, parseAsString, useQueryState } from 'nuqs'
- import type { ICommand } from 'ui-patterns/CommandMenu'
- import { useRegisterCommands, useSetCommandMenuOpen } from 'ui-patterns/CommandMenu'
- import { COMMAND_MENU_SECTIONS } from '@/components/interfaces/App/CommandMenu/CommandMenu.utils'
- import { orderCommandSectionsByPriority } from '@/components/interfaces/App/CommandMenu/ordering'
- import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
- import { PROJECT_STATUS } from '@/lib/constants'
- export function useConnectCommands() {
- const setIsOpen = useSetCommandMenuOpen()
- const { data: selectedProject } = useSelectedProjectQuery()
- const isActiveHealthy = selectedProject?.status === PROJECT_STATUS.ACTIVE_HEALTHY
- const [, setShowConnect] = useQueryState('showConnect', parseAsBoolean.withDefault(false))
- const [, setConnectTab] = useQueryState('connectTab', parseAsString)
- useRegisterCommands(
- COMMAND_MENU_SECTIONS.ACTIONS,
- [
- {
- id: 'connect-to-project',
- name: 'Connect to your project',
- action: () => {
- setShowConnect(true)
- setIsOpen(false)
- },
- icon: () => <Plug className="rotate-90" />,
- },
- {
- id: 'connect-mcp',
- name: 'Connect via MCP',
- action: () => {
- setShowConnect(true)
- setConnectTab('mcp')
- setIsOpen(false)
- },
- icon: () => <Plug className="rotate-90" />,
- },
- ] as ICommand[],
- {
- enabled: !!selectedProject && isActiveHealthy,
- orderSection: orderCommandSectionsByPriority,
- sectionMeta: { priority: 2 },
- }
- )
- }
|