import { useRecoilValue } from 'recoil'; import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; import { isDefined, isWorkspaceActiveOrSuspended } from 'twenty-shared'; import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems'; export const useObjectNameSingularFromPlural = ({ objectNamePlural, }: { objectNamePlural: string; }) => { const currentWorkspace = useRecoilValue(currentWorkspaceState); let objectMetadataItem = useRecoilValue( objectMetadataItemFamilySelector({ objectName: objectNamePlural, objectNameType: 'plural', }), ); if (!isWorkspaceActiveOrSuspended(currentWorkspace)) { objectMetadataItem = generatedMockObjectMetadataItems.find( (objectMetadataItem) => objectMetadataItem.namePlural === objectNamePlural, ) ?? null; } if (!isDefined(objectMetadataItem)) { throw new Error( `Object metadata item not found for ${objectNamePlural} object`, ); } return { objectNameSingular: objectMetadataItem.nameSingular }; };