import { useTheme } from '@emotion/react'; import { useLingui } from '@lingui/react/macro'; import { IconLink } from 'twenty-ui/display'; import { CommandMenuPageInfoLayout } from '@/command-menu/components/CommandMenuPageInfoLayout'; import { commandMenuPageInfoState } from '@/command-menu/states/commandMenuPageInfoState'; import { commandMenuShouldFocusTitleInputComponentState } from '@/command-menu/states/commandMenuShouldFocusTitleInputComponentState'; import { NavigationMenuItemType } from '@/navigation-menu-item/constants/NavigationMenuItemType'; import { StyledNavigationMenuItemIconContainer } from '@/navigation-menu-item/components/NavigationMenuItemIconContainer'; import { useUpdateLinkInDraft } from '@/navigation-menu-item/hooks/useUpdateLinkInDraft'; import { useWorkspaceSectionItems } from '@/navigation-menu-item/hooks/useWorkspaceSectionItems'; import { selectedNavigationMenuItemInEditModeStateV2 } from '@/navigation-menu-item/states/selectedNavigationMenuItemInEditModeStateV2'; import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2'; import { getNavigationMenuItemIconColors } from '@/navigation-menu-item/utils/getNavigationMenuItemIconColors'; import { TitleInput } from '@/ui/input/components/TitleInput'; import { useRecoilComponentStateV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilComponentStateV2'; export const CommandMenuLinkInfo = () => { const theme = useTheme(); const { t } = useLingui(); const commandMenuPageInfo = useRecoilValueV2(commandMenuPageInfoState); const [shouldFocusTitleInput, setShouldFocusTitleInput] = useRecoilComponentStateV2( commandMenuShouldFocusTitleInputComponentState, commandMenuPageInfo.instanceId, ); const selectedNavigationMenuItemInEditMode = useRecoilValueV2( selectedNavigationMenuItemInEditModeStateV2, ); const items = useWorkspaceSectionItems(); const { updateLinkInDraft } = useUpdateLinkInDraft(); const defaultLabel = t`Link label`; const placeholder = t`Link label`; const selectedItem = selectedNavigationMenuItemInEditMode ? items.find( (item) => item.itemType === NavigationMenuItemType.LINK && item.id === selectedNavigationMenuItemInEditMode, ) : undefined; if (!selectedItem) return null; const itemId = selectedItem.id; const itemName = selectedItem.name ?? defaultLabel; const handleChange = (text: string) => { updateLinkInDraft(itemId, { name: text }); }; const handleSave = () => { const trimmed = itemName.trim(); const finalName = trimmed.length > 0 ? trimmed : defaultLabel; if (finalName !== itemName) { updateLinkInDraft(itemId, { name: finalName }); } }; return ( } title={ setShouldFocusTitleInput(false)} /> } label={t`link`} /> ); };