Files
twenty/packages/twenty-front/src/modules/object-metadata/states/labelIdentifierFieldMetadataItemSelector.ts
T
Lucas Bordeau 8cb4058d2d Refactor table columns states and utils (#14048)
This PR refactors table columns state, hooks and utils, it removes them
and replaces them by record fields.
2025-08-26 13:17:53 +02:00

32 lines
1.1 KiB
TypeScript

import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { isLabelIdentifierField } from '@/object-metadata/utils/isLabelIdentifierField';
import { selectorFamily } from 'recoil';
import { isDefined } from 'twenty-shared/utils';
export const labelIdentifierFieldMetadataItemSelector = selectorFamily({
key: 'labelIdentifierFieldMetadataItemSelector',
get:
({ objectMetadataItemId }: { objectMetadataItemId: string }) =>
({ get }) => {
const objectMetadataItems = get(objectMetadataItemsState);
const objectMetadataItem = objectMetadataItems.find(
(objectMetadataItem) => objectMetadataItem.id === objectMetadataItemId,
);
if (!isDefined(objectMetadataItem)) {
return undefined;
}
const labelIdentifierFieldMetadataItem = objectMetadataItem.fields.find(
(fieldMetadataItemToFind) =>
isLabelIdentifierField({
fieldMetadataItem: fieldMetadataItemToFind,
objectMetadataItem: objectMetadataItem,
}),
);
return labelIdentifierFieldMetadataItem;
},
});