import { styled } from '@linaria/react'; import { isDefined } from 'twenty-shared/utils'; import { IconColumnInsertRight, OverflowingTextWithTooltip, } from 'twenty-ui/display'; import { CommandMenuAskAIInfo } from '@/command-menu/components/CommandMenuAskAIInfo'; import { CommandMenuFolderInfo } from '@/command-menu/components/CommandMenuFolderInfo'; import { CommandMenuLinkInfo } from '@/command-menu/components/CommandMenuLinkInfo'; import { CommandMenuMultipleRecordsInfo } from '@/command-menu/components/CommandMenuMultipleRecordsInfo'; import { CommandMenuObjectViewRecordInfo } from '@/command-menu/components/CommandMenuObjectViewRecordInfo'; import { CommandMenuPageInfoLayout } from '@/command-menu/components/CommandMenuPageInfoLayout'; import { CommandMenuPageLayoutInfo } from '@/command-menu/components/CommandMenuPageLayoutInfo'; import { CommandMenuRecordInfo } from '@/command-menu/components/CommandMenuRecordInfo'; import { CommandMenuWorkflowStepInfo } from '@/command-menu/components/CommandMenuWorkflowStepInfo'; import { NavigationMenuItemType } from '@/navigation-menu-item/constants/NavigationMenuItemType'; import { useWorkspaceSectionItems } from '@/navigation-menu-item/hooks/useWorkspaceSectionItems'; import { selectedNavigationMenuItemInEditModeState } from '@/navigation-menu-item/states/selectedNavigationMenuItemInEditModeState'; import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue'; import { CommandMenuPages } from 'twenty-shared/types'; import { useContext } from 'react'; import { type CommandMenuContextChipProps } from './CommandMenuContextChip'; import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants'; const StyledPageTitle = styled.div` color: ${themeCssVariables.font.color.primary}; font-size: ${themeCssVariables.font.size.sm}; font-weight: ${themeCssVariables.font.weight.semiBold}; `; type CommandMenuPageInfoProps = { pageChip: CommandMenuContextChipProps | undefined; }; export const CommandMenuPageInfo = ({ pageChip }: CommandMenuPageInfoProps) => { const { theme } = useContext(ThemeContext); const selectedNavigationMenuItemInEditMode = useAtomStateValue( selectedNavigationMenuItemInEditModeState, ); const items = useWorkspaceSectionItems(); if (!isDefined(pageChip)) { return null; } const isNavigationMenuItemEditPage = pageChip.page?.page === CommandMenuPages.NavigationMenuItemEdit; const selectedNavItem = isNavigationMenuItemEditPage ? items.find((item) => item.id === selectedNavigationMenuItemInEditMode) : undefined; if (isNavigationMenuItemEditPage && isDefined(selectedNavItem)) { const itemType = selectedNavItem.itemType; if (itemType === NavigationMenuItemType.FOLDER) { return ; } if (itemType === NavigationMenuItemType.LINK) { return ; } if ( itemType === NavigationMenuItemType.VIEW || itemType === NavigationMenuItemType.RECORD ) { return ; } } const isRecordPage = pageChip.page?.page === CommandMenuPages.ViewRecord; if (isRecordPage && isDefined(pageChip.page?.pageId)) { return ( ); } const isWorkflowStepPage = pageChip.page?.page ? [ CommandMenuPages.WorkflowStepEdit, CommandMenuPages.WorkflowStepView, CommandMenuPages.WorkflowRunStepView, ].includes(pageChip.page?.page) : false; if (isWorkflowStepPage && isDefined(pageChip.page?.pageId)) { return ( ); } const isPageLayoutPage = pageChip.page?.page ? [ CommandMenuPages.PageLayoutWidgetTypeSelect, CommandMenuPages.PageLayoutGraphTypeSelect, CommandMenuPages.PageLayoutGraphFilter, CommandMenuPages.PageLayoutIframeSettings, CommandMenuPages.PageLayoutTabSettings, CommandMenuPages.PageLayoutFieldsSettings, CommandMenuPages.PageLayoutFieldsLayout, ].includes(pageChip.page?.page) : false; if (isPageLayoutPage) { return ; } const isMultipleRecordsPage = pageChip.page?.page === CommandMenuPages.UpdateRecords; if (isMultipleRecordsPage && isDefined(pageChip.page?.pageId)) { return ( ); } const isAskAIPage = pageChip.page?.page === CommandMenuPages.AskAI; if (isAskAIPage) { return ; } if (pageChip.page?.page === CommandMenuPages.NavigationMenuAddItem) { return ( } title={} /> ); } return ( ); };