import { Forward, GitBranch } from 'lucide-react' import { PageType, useRegisterCommands, useRegisterPage, useSetPage } from 'ui-patterns/CommandMenu' import { COMMAND_MENU_SECTIONS } from '../App/CommandMenu/CommandMenu.utils' import { orderCommandSectionsByPriority } from '../App/CommandMenu/ordering' import { useBranchesQuery } from '@/data/branches/branches-query' import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject' const SWITCH_BRANCH_PAGE_NAME = 'Switch branch' const EMPTY_ARRAY = [] as Array export function useBranchCommands() { const setPage = useSetPage() const { data: selectedProject } = useSelectedProjectQuery() const isBranchingEnabled = selectedProject?.is_branch_enabled === true let { data: branches } = useBranchesQuery( { projectRef: selectedProject?.parent_project_ref || selectedProject?.ref, }, { enabled: isBranchingEnabled } ) branches ??= EMPTY_ARRAY useRegisterPage( SWITCH_BRANCH_PAGE_NAME, { type: PageType.Commands, sections: [ { id: 'switch-branch', name: 'Switch branch', commands: branches.map((branch) => ({ id: `branch-${branch.id}`, name: branch.name, route: `/project/${branch.project_ref}`, icon: () => , })), }, ], }, { enabled: isBranchingEnabled && branches.length > 0, deps: [branches] } ) useRegisterCommands( COMMAND_MENU_SECTIONS.ACTIONS, [ { id: 'switch-branch', name: 'Switch branch', value: 'Switch branch, Change branch, Select branch', action: () => setPage(SWITCH_BRANCH_PAGE_NAME), icon: () => , }, ], { enabled: isBranchingEnabled && branches.length > 0, orderSection: orderCommandSectionsByPriority, sectionMeta: { priority: 3 }, } ) }