a0178478d4
In this PR I'm optimizing a whole RecordTableCell in real conditions with a complex RelationFieldDisplay component : - Broke down getObjectRecordIdentifier into multiple utils - Precompute memoized function for getting chip data per field with useRecordChipDataGenerator() - Refactored RelationFieldDisplay - Use CSS modules where performance is needed instead of styled components - Create a CSS theme with global CSS variables to be used by CSS modules
25 lines
918 B
TypeScript
25 lines
918 B
TypeScript
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
|
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
|
|
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
|
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
|
import { isDefined } from '~/utils/isDefined';
|
|
|
|
export const getLabelIdentifierFieldValue = (
|
|
record: ObjectRecord,
|
|
labelIdentifierFieldMetadataItem: FieldMetadataItem | undefined,
|
|
objectNameSingular: string,
|
|
) => {
|
|
if (
|
|
objectNameSingular === CoreObjectNameSingular.WorkspaceMember ||
|
|
labelIdentifierFieldMetadataItem?.type === FieldMetadataType.FullName
|
|
) {
|
|
return `${record.name?.firstName ?? ''} ${record.name?.lastName ?? ''}`;
|
|
}
|
|
|
|
if (isDefined(labelIdentifierFieldMetadataItem?.name)) {
|
|
return record[labelIdentifierFieldMetadataItem.name] as string | number;
|
|
}
|
|
|
|
return '';
|
|
};
|