import { COMMAND_MENU_LIST_SELECTABLE_LIST_ID } from '@/command-menu/constants/CommandMenuListSelectableListId'; import { hasUserSelectedCommandState } from '@/command-menu/states/hasUserSelectedCommandState'; import { useSelectableList } from '@/ui/layout/selectable-list/hooks/useSelectableList'; import { selectedItemIdComponentState } from '@/ui/layout/selectable-list/states/selectedItemIdComponentState'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilComponentValueV2'; import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2'; import { useEffect } from 'react'; import { isDefined } from 'twenty-shared/utils'; export const CommandMenuDefaultSelectionEffect = ({ selectableItemIds, }: { selectableItemIds: string[]; }) => { const { setSelectedItemId } = useSelectableList( COMMAND_MENU_LIST_SELECTABLE_LIST_ID, ); const selectedItemId = useRecoilComponentValueV2( selectedItemIdComponentState, COMMAND_MENU_LIST_SELECTABLE_LIST_ID, ); const hasUserSelectedCommand = useRecoilValueV2(hasUserSelectedCommandState); useEffect(() => { if ( isDefined(selectedItemId) && selectableItemIds.includes(selectedItemId) && hasUserSelectedCommand ) { return; } if (selectableItemIds.length > 0) { setSelectedItemId(selectableItemIds[0]); } }, [ hasUserSelectedCommand, selectableItemIds, selectedItemId, setSelectedItemId, ]); return null; };