Added option to prevent sending requests to twenty-icons (#16723)
Solution for #15891 https://github.com/user-attachments/assets/82ce5c4b-0a78-45a8-8196-413473887820 --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
+9
-3
@@ -4,16 +4,22 @@ import { useRecoilValue } from 'recoil';
|
||||
import { PreComputedChipGeneratorsContext } from '@/object-metadata/contexts/PreComputedChipGeneratorsContext';
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
import { getRecordChipGenerators } from '@/object-record/utils/getRecordChipGenerators';
|
||||
import { allowRequestsToTwentyIconsState } from '@/client-config/states/allowRequestsToTwentyIcons';
|
||||
|
||||
export const PreComputedChipGeneratorsProvider = ({
|
||||
children,
|
||||
}: React.PropsWithChildren) => {
|
||||
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
||||
|
||||
const allowRequestsToTwentyIcons = useRecoilValue(
|
||||
allowRequestsToTwentyIconsState,
|
||||
);
|
||||
const { chipGeneratorPerObjectPerField, identifierChipGeneratorPerObject } =
|
||||
useMemo(() => {
|
||||
return getRecordChipGenerators(objectMetadataItems);
|
||||
}, [objectMetadataItems]);
|
||||
return getRecordChipGenerators(
|
||||
objectMetadataItems,
|
||||
allowRequestsToTwentyIcons,
|
||||
);
|
||||
}, [allowRequestsToTwentyIcons, objectMetadataItems]);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ describe('useGetObjectRecordIdentifierByNameSingular', () => {
|
||||
|
||||
setMetadataItems(generatedMockObjectMetadataItems);
|
||||
|
||||
return useGetObjectRecordIdentifierByNameSingular()(
|
||||
return useGetObjectRecordIdentifierByNameSingular(true)(
|
||||
record,
|
||||
objectNameSingular,
|
||||
);
|
||||
|
||||
+1
@@ -13,6 +13,7 @@ describe('useMapToObjectRecordIdentifier', () => {
|
||||
() => {
|
||||
const { mapToObjectRecordIdentifier } = useMapToObjectRecordIdentifier({
|
||||
objectNameSingular: 'person',
|
||||
allowRequestsToTwentyIcons: true,
|
||||
});
|
||||
|
||||
return mapToObjectRecordIdentifier({
|
||||
|
||||
+4
-1
@@ -4,7 +4,9 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadat
|
||||
import { getObjectRecordIdentifier } from '@/object-metadata/utils/getObjectRecordIdentifier';
|
||||
import { type ObjectRecordIdentifier } from '@/object-record/types/ObjectRecordIdentifier';
|
||||
|
||||
export const useGetObjectRecordIdentifierByNameSingular = () => {
|
||||
export const useGetObjectRecordIdentifierByNameSingular = (
|
||||
allowRequestsToTwentyIcons: boolean,
|
||||
) => {
|
||||
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
||||
|
||||
return (record: any, objectNameSingular: string): ObjectRecordIdentifier => {
|
||||
@@ -21,6 +23,7 @@ export const useGetObjectRecordIdentifierByNameSingular = () => {
|
||||
return getObjectRecordIdentifier({
|
||||
objectMetadataItem,
|
||||
record,
|
||||
allowRequestsToTwentyIcons,
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
+7
-1
@@ -4,15 +4,21 @@ import { type ObjectRecord } from '@/object-record/types/ObjectRecord';
|
||||
|
||||
export const useMapToObjectRecordIdentifier = ({
|
||||
objectNameSingular,
|
||||
allowRequestsToTwentyIcons,
|
||||
}: {
|
||||
objectNameSingular: string;
|
||||
allowRequestsToTwentyIcons: boolean;
|
||||
}) => {
|
||||
const { objectMetadataItem } = useObjectMetadataItem({
|
||||
objectNameSingular,
|
||||
});
|
||||
|
||||
const mapToObjectRecordIdentifier = (record: ObjectRecord) => {
|
||||
return getObjectRecordIdentifier({ objectMetadataItem, record });
|
||||
return getObjectRecordIdentifier({
|
||||
objectMetadataItem,
|
||||
record,
|
||||
allowRequestsToTwentyIcons,
|
||||
});
|
||||
};
|
||||
|
||||
return { mapToObjectRecordIdentifier };
|
||||
|
||||
@@ -15,12 +15,16 @@ export const getAvatarUrl = (
|
||||
objectNameSingular: string,
|
||||
record: ObjectRecord,
|
||||
imageIdentifierFieldMetadataItem: FieldMetadataItem | undefined,
|
||||
allowRequestsToTwentyIcons?: boolean | undefined,
|
||||
) => {
|
||||
if (objectNameSingular === CoreObjectNameSingular.WorkspaceMember) {
|
||||
return record.avatarUrl ?? undefined;
|
||||
}
|
||||
|
||||
if (objectNameSingular === CoreObjectNameSingular.Company) {
|
||||
if (
|
||||
objectNameSingular === CoreObjectNameSingular.Company &&
|
||||
allowRequestsToTwentyIcons === true
|
||||
) {
|
||||
return getLogoUrlFromDomainName(
|
||||
getCompanyDomainName(record as Company) ?? '',
|
||||
);
|
||||
|
||||
@@ -11,6 +11,7 @@ import { getLinkToShowPage } from './getLinkToShowPage';
|
||||
export const getObjectRecordIdentifier = ({
|
||||
objectMetadataItem,
|
||||
record,
|
||||
allowRequestsToTwentyIcons,
|
||||
}: {
|
||||
objectMetadataItem: Pick<
|
||||
ObjectMetadataItem,
|
||||
@@ -20,6 +21,7 @@ export const getObjectRecordIdentifier = ({
|
||||
| 'imageIdentifierFieldMetadataId'
|
||||
>;
|
||||
record: ObjectRecord;
|
||||
allowRequestsToTwentyIcons: boolean;
|
||||
}): ObjectRecordIdentifier => {
|
||||
const labelIdentifierFieldMetadataItem =
|
||||
getLabelIdentifierFieldMetadataItem(objectMetadataItem);
|
||||
@@ -40,6 +42,7 @@ export const getObjectRecordIdentifier = ({
|
||||
objectMetadataItem.nameSingular,
|
||||
record,
|
||||
imageIdentifierFieldMetadata,
|
||||
allowRequestsToTwentyIcons,
|
||||
);
|
||||
|
||||
const linkToShowPage = getLinkToShowPage(
|
||||
|
||||
Reference in New Issue
Block a user