import { useRecoilState } from 'recoil'; import { CompanyChip } from '@/companies/components/CompanyChip'; import { PersonChip } from '@/people/components/PersonChip'; import { Entity } from '@/ui/relation-picker/types/EntityTypeForSelect'; import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId'; import { tableEntityFieldFamilySelector } from '@/ui/table/states/tableEntityFieldFamilySelector'; import { ViewFieldDefinition, ViewFieldDoubleTextChipMetadata, } from '@/ui/table/types/ViewField'; type OwnProps = { viewField: ViewFieldDefinition; }; export function GenericEditableDoubleTextChipCellDisplayMode({ viewField, }: OwnProps) { const currentRowEntityId = useCurrentRowEntityId(); const [firstValue] = useRecoilState( tableEntityFieldFamilySelector({ entityId: currentRowEntityId ?? '', fieldName: viewField.metadata.firstValueFieldName, }), ); const [secondValue] = useRecoilState( tableEntityFieldFamilySelector({ entityId: currentRowEntityId ?? '', fieldName: viewField.metadata.secondValueFieldName, }), ); const [avatarUrlValue] = useRecoilState( tableEntityFieldFamilySelector({ entityId: currentRowEntityId ?? '', fieldName: viewField.metadata.avatarUrlFieldName, }), ); const displayName = `${firstValue} ${secondValue}`; switch (viewField.metadata.entityType) { case Entity.Company: { return ; } case Entity.Person: { return ( ); } default: console.warn( `Unknown relation type: "${viewField.metadata.entityType}" in GenericEditableDoubleTextChipCellDisplayMode`, ); return <> ; } }