Complete labelIdentifer, relationPicker first implementation (#2618)

* Fix first column main identifier

* Fixes
This commit is contained in:
Charles Bochet
2023-11-21 18:32:36 +01:00
committed by GitHub
parent dd125ddfcc
commit 726e375616
27 changed files with 165 additions and 91 deletions

View File

@ -2,9 +2,22 @@ import { useEffect } from 'react';
import { useRelationPicker } from '@/ui/input/components/internal/relation-picker/hooks/useRelationPicker';
import { IdentifiersMapper } from '@/ui/input/components/internal/relation-picker/types/IdentifiersMapper';
import { getLogoUrlFromDomainName } from '~/utils';
export const ObjectMetadataItemsRelationPickerEffect = () => {
const { setIdentifiersMapper } = useRelationPicker();
const { setIdentifiersMapper, setSearchQuery } = useRelationPicker();
const computeFilterFields = (relationPickerType: string) => {
if (relationPickerType === 'company') {
return ['name'];
}
if (['workspaceMember', 'person'].includes(relationPickerType)) {
return ['name.firstName', 'name.lastName'];
}
return ['name'];
};
const identifierMapper: IdentifiersMapper = (
record: any,
@ -18,13 +31,15 @@ export const ObjectMetadataItemsRelationPickerEffect = () => {
return {
id: record.id,
name: record.name,
avatarUrl: record.avatarUrl,
avatarUrl: getLogoUrlFromDomainName(record.domainName ?? ''),
avatarType: 'squared',
record: record,
};
}
if (objectMetadataItemSingularName === 'workspaceMember') {
if (
['workspaceMember', 'person'].includes(objectMetadataItemSingularName)
) {
return {
id: record.id,
name: record.name.firstName + ' ' + record.name.lastName,
@ -34,6 +49,16 @@ export const ObjectMetadataItemsRelationPickerEffect = () => {
};
}
if (['opportunity'].includes(objectMetadataItemSingularName)) {
return {
id: record.id,
name: record.company.name,
avatarUrl: record.avatarUrl,
avatarType: 'rounded',
record: record,
};
}
return {
id: record.id,
name: record.name,
@ -45,7 +70,10 @@ export const ObjectMetadataItemsRelationPickerEffect = () => {
useEffect(() => {
setIdentifiersMapper(() => identifierMapper);
}, [setIdentifiersMapper]);
setSearchQuery({
computeFilterFields,
});
}, [setIdentifiersMapper, setSearchQuery]);
return <></>;
};