chore: update codegen config for enum naming convention (#9751)
Co-authored-by: etiennejouan <jouan.etienne@gmail.com>
This commit is contained in:
@ -60,9 +60,9 @@ export const getRecordNodeFromRecord = <T extends ObjectRecord>({
|
||||
}
|
||||
|
||||
if (
|
||||
field.type === FieldMetadataType.Relation &&
|
||||
field.type === FieldMetadataType.RELATION &&
|
||||
field.relationDefinition?.direction ===
|
||||
RelationDefinitionType.OneToMany
|
||||
RelationDefinitionType.ONE_TO_MANY
|
||||
) {
|
||||
const oneToManyObjectMetadataItem = objectMetadataItems.find(
|
||||
(item) =>
|
||||
@ -93,7 +93,7 @@ export const getRecordNodeFromRecord = <T extends ObjectRecord>({
|
||||
}
|
||||
|
||||
switch (field.type) {
|
||||
case FieldMetadataType.Relation: {
|
||||
case FieldMetadataType.RELATION: {
|
||||
if (
|
||||
isUndefined(
|
||||
field.relationDefinition?.targetObjectMetadata.nameSingular,
|
||||
@ -131,10 +131,10 @@ export const getRecordNodeFromRecord = <T extends ObjectRecord>({
|
||||
},
|
||||
];
|
||||
}
|
||||
case FieldMetadataType.Links:
|
||||
case FieldMetadataType.Address:
|
||||
case FieldMetadataType.FullName:
|
||||
case FieldMetadataType.Currency: {
|
||||
case FieldMetadataType.LINKS:
|
||||
case FieldMetadataType.ADDRESS:
|
||||
case FieldMetadataType.FULL_NAME:
|
||||
case FieldMetadataType.CURRENCY: {
|
||||
return [
|
||||
fieldName,
|
||||
{
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
|
||||
export const FIELD_NOT_OVERWRITTEN_AT_DRAFT = [
|
||||
FieldMetadataType.Address,
|
||||
FieldMetadataType.Phones,
|
||||
FieldMetadataType.Links,
|
||||
FieldMetadataType.ADDRESS,
|
||||
FieldMetadataType.PHONES,
|
||||
FieldMetadataType.LINKS,
|
||||
];
|
||||
|
||||
@ -25,7 +25,7 @@ const mockObjectMetadataItem: ObjectMetadataItem = {
|
||||
id: 'field-1',
|
||||
name: 'amount',
|
||||
label: 'Amount',
|
||||
type: FieldMetadataType.Number,
|
||||
type: FieldMetadataType.NUMBER,
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
createdAt: new Date().toISOString(),
|
||||
@ -35,7 +35,7 @@ const mockObjectMetadataItem: ObjectMetadataItem = {
|
||||
id: 'field-2',
|
||||
name: 'name',
|
||||
label: 'Name',
|
||||
type: FieldMetadataType.Text,
|
||||
type: FieldMetadataType.TEXT,
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
createdAt: new Date().toISOString(),
|
||||
|
||||
@ -41,7 +41,7 @@ export const ObjectFilterDropdownDateInput = () => {
|
||||
);
|
||||
|
||||
const isDateTimeInput =
|
||||
filterDefinitionUsedInDropdown?.type === FieldMetadataType.DateTime;
|
||||
filterDefinitionUsedInDropdown?.type === FieldMetadataType.DATE_TIME;
|
||||
|
||||
const handleAbsoluteDateChange = (newDate: Date | null) => {
|
||||
setInternalDate(newDate);
|
||||
|
||||
@ -48,7 +48,7 @@ const meta: Meta<typeof MultipleFiltersDropdownButton> = {
|
||||
fieldMetadataId: '1',
|
||||
iconName: 'IconUser',
|
||||
label: 'Text',
|
||||
type: FieldMetadataType.Text,
|
||||
type: FieldMetadataType.TEXT,
|
||||
isVisible: true,
|
||||
metadata: {
|
||||
fieldName: 'text',
|
||||
@ -58,7 +58,7 @@ const meta: Meta<typeof MultipleFiltersDropdownButton> = {
|
||||
fieldMetadataId: '3',
|
||||
iconName: 'IconNumber',
|
||||
label: 'Number',
|
||||
type: FieldMetadataType.Number,
|
||||
type: FieldMetadataType.NUMBER,
|
||||
isVisible: true,
|
||||
metadata: {
|
||||
fieldName: 'number',
|
||||
@ -68,7 +68,7 @@ const meta: Meta<typeof MultipleFiltersDropdownButton> = {
|
||||
fieldMetadataId: '4',
|
||||
iconName: 'IconCalendar',
|
||||
label: 'Date',
|
||||
type: FieldMetadataType.DateTime,
|
||||
type: FieldMetadataType.DATE_TIME,
|
||||
isVisible: true,
|
||||
metadata: {
|
||||
fieldName: 'date',
|
||||
@ -81,19 +81,19 @@ const meta: Meta<typeof MultipleFiltersDropdownButton> = {
|
||||
fieldMetadataId: '1',
|
||||
iconName: 'IconUser',
|
||||
label: 'Text',
|
||||
type: FieldMetadataType.Text,
|
||||
type: FieldMetadataType.TEXT,
|
||||
},
|
||||
{
|
||||
fieldMetadataId: '3',
|
||||
iconName: 'IconNumber',
|
||||
label: 'Number',
|
||||
type: FieldMetadataType.Number,
|
||||
type: FieldMetadataType.NUMBER,
|
||||
},
|
||||
{
|
||||
fieldMetadataId: '3',
|
||||
iconName: 'IconCalendar',
|
||||
label: 'Date',
|
||||
type: FieldMetadataType.DateTime,
|
||||
type: FieldMetadataType.DATE_TIME,
|
||||
},
|
||||
]);
|
||||
return (
|
||||
|
||||
@ -74,7 +74,7 @@ export const ObjectOptionsDropdownRecordGroupFieldsContent = () => {
|
||||
objectNamePlural,
|
||||
},
|
||||
{
|
||||
fieldType: FieldMetadataType.Select,
|
||||
fieldType: FieldMetadataType.SELECT,
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
@ -7,8 +7,8 @@ jest.mock('@/object-metadata/hooks/useObjectMetadataItem', () => ({
|
||||
useObjectMetadataItem: jest.fn(() => ({
|
||||
objectMetadataItem: {
|
||||
fields: [
|
||||
{ type: FieldMetadataType.Currency, name: 'price' },
|
||||
{ type: FieldMetadataType.Text, name: 'name' },
|
||||
{ type: FieldMetadataType.CURRENCY, name: 'price' },
|
||||
{ type: FieldMetadataType.TEXT, name: 'name' },
|
||||
],
|
||||
},
|
||||
})),
|
||||
|
||||
@ -26,9 +26,9 @@ describe('useSearchRecordGroupField', () => {
|
||||
const mockContextValue = {
|
||||
objectMetadataItem: {
|
||||
fields: [
|
||||
{ type: FieldMetadataType.Select, label: 'First' },
|
||||
{ type: FieldMetadataType.Select, label: 'Second' },
|
||||
{ type: FieldMetadataType.Text, label: 'Third' },
|
||||
{ type: FieldMetadataType.SELECT, label: 'First' },
|
||||
{ type: FieldMetadataType.SELECT, label: 'Second' },
|
||||
{ type: FieldMetadataType.TEXT, label: 'Third' },
|
||||
],
|
||||
},
|
||||
};
|
||||
@ -40,7 +40,7 @@ describe('useSearchRecordGroupField', () => {
|
||||
});
|
||||
|
||||
expect(result.current.filteredRecordGroupFieldMetadataItems).toEqual([
|
||||
{ type: FieldMetadataType.Select, label: 'First' },
|
||||
{ type: FieldMetadataType.SELECT, label: 'First' },
|
||||
]);
|
||||
});
|
||||
|
||||
@ -48,9 +48,9 @@ describe('useSearchRecordGroupField', () => {
|
||||
const mockContextValue = {
|
||||
objectMetadataItem: {
|
||||
fields: [
|
||||
{ type: FieldMetadataType.Select, label: 'First' },
|
||||
{ type: FieldMetadataType.Select, label: 'Second' },
|
||||
{ type: FieldMetadataType.Text, label: 'Third' },
|
||||
{ type: FieldMetadataType.SELECT, label: 'First' },
|
||||
{ type: FieldMetadataType.SELECT, label: 'Second' },
|
||||
{ type: FieldMetadataType.TEXT, label: 'Third' },
|
||||
],
|
||||
},
|
||||
};
|
||||
@ -58,8 +58,8 @@ describe('useSearchRecordGroupField', () => {
|
||||
const { result } = renderWithContext(mockContextValue);
|
||||
|
||||
expect(result.current.filteredRecordGroupFieldMetadataItems).toEqual([
|
||||
{ type: FieldMetadataType.Select, label: 'First' },
|
||||
{ type: FieldMetadataType.Select, label: 'Second' },
|
||||
{ type: FieldMetadataType.SELECT, label: 'First' },
|
||||
{ type: FieldMetadataType.SELECT, label: 'Second' },
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
@ -19,7 +19,7 @@ export const useExportProcessRecordsForCSV = (objectNameSingular: string) => {
|
||||
}
|
||||
|
||||
switch (field.type) {
|
||||
case FieldMetadataType.Currency:
|
||||
case FieldMetadataType.CURRENCY:
|
||||
return {
|
||||
...processedRecord,
|
||||
[field.name]: {
|
||||
@ -29,7 +29,7 @@ export const useExportProcessRecordsForCSV = (objectNameSingular: string) => {
|
||||
currencyCode: record[field.name].currencyCode,
|
||||
} satisfies FieldCurrencyValue,
|
||||
};
|
||||
case FieldMetadataType.RawJson:
|
||||
case FieldMetadataType.RAW_JSON:
|
||||
return {
|
||||
...processedRecord,
|
||||
[field.name]: JSON.stringify(record[field.name]),
|
||||
|
||||
@ -16,7 +16,7 @@ export const useSearchRecordGroupField = () => {
|
||||
|
||||
return objectMetadataItem.fields.filter(
|
||||
(field) =>
|
||||
field.type === FieldMetadataType.Select &&
|
||||
field.type === FieldMetadataType.SELECT &&
|
||||
field.label.toLocaleLowerCase().includes(searchInputLowerCase),
|
||||
);
|
||||
}, [objectMetadataItem.fields, recordGroupFieldSearchInput]);
|
||||
|
||||
@ -93,7 +93,7 @@ export const useAddNewCard = () => {
|
||||
throw new Error('Label identifier field not found');
|
||||
}
|
||||
|
||||
if (labelIdentifierField.type === FieldMetadataType.FullName) {
|
||||
if (labelIdentifierField.type === FieldMetadataType.FULL_NAME) {
|
||||
computedLabelIdentifierValue = {
|
||||
firstName: labelValue,
|
||||
lastName: '',
|
||||
|
||||
@ -26,17 +26,17 @@ describe('buildRecordGqlFieldsAggregateForView', () => {
|
||||
{
|
||||
id: MOCK_FIELD_ID,
|
||||
name: 'amount',
|
||||
type: FieldMetadataType.Number,
|
||||
type: FieldMetadataType.NUMBER,
|
||||
} as FieldMetadataItem,
|
||||
{
|
||||
id: '06b33746-5293-4d07-9f7f-ebf5ad396064',
|
||||
name: 'name',
|
||||
type: FieldMetadataType.Text,
|
||||
type: FieldMetadataType.TEXT,
|
||||
} as FieldMetadataItem,
|
||||
{
|
||||
id: 'e46b9ba4-144b-4d10-a092-03a7521c8aa0',
|
||||
name: 'createdAt',
|
||||
type: FieldMetadataType.DateTime,
|
||||
type: FieldMetadataType.DATE_TIME,
|
||||
} as FieldMetadataItem,
|
||||
],
|
||||
indexMetadatas: [],
|
||||
|
||||
@ -19,7 +19,7 @@ describe('computeAggregateValueAndLabel', () => {
|
||||
id: MOCK_FIELD_ID,
|
||||
name: 'amount',
|
||||
label: 'amount',
|
||||
type: FieldMetadataType.Currency,
|
||||
type: FieldMetadataType.CURRENCY,
|
||||
} as FieldMetadataItem,
|
||||
],
|
||||
} as ObjectMetadataItem;
|
||||
@ -74,7 +74,7 @@ describe('computeAggregateValueAndLabel', () => {
|
||||
id: MOCK_FIELD_ID,
|
||||
name: 'percentage',
|
||||
label: 'percentage',
|
||||
type: FieldMetadataType.Number,
|
||||
type: FieldMetadataType.NUMBER,
|
||||
settings: {
|
||||
type: 'percentage',
|
||||
},
|
||||
@ -112,7 +112,7 @@ describe('computeAggregateValueAndLabel', () => {
|
||||
id: MOCK_FIELD_ID,
|
||||
name: 'decimals',
|
||||
label: 'decimals',
|
||||
type: FieldMetadataType.Number,
|
||||
type: FieldMetadataType.NUMBER,
|
||||
settings: {
|
||||
decimals: 2,
|
||||
},
|
||||
@ -150,7 +150,7 @@ describe('computeAggregateValueAndLabel', () => {
|
||||
id: MOCK_FIELD_ID,
|
||||
name: 'createdAt',
|
||||
label: 'Created At',
|
||||
type: FieldMetadataType.DateTime,
|
||||
type: FieldMetadataType.DATE_TIME,
|
||||
} as FieldMetadataItem,
|
||||
],
|
||||
} as ObjectMetadataItem;
|
||||
@ -185,7 +185,7 @@ describe('computeAggregateValueAndLabel', () => {
|
||||
id: MOCK_FIELD_ID,
|
||||
name: 'updatedAt',
|
||||
label: 'Updated At',
|
||||
type: FieldMetadataType.DateTime,
|
||||
type: FieldMetadataType.DATE_TIME,
|
||||
} as FieldMetadataItem,
|
||||
],
|
||||
} as ObjectMetadataItem;
|
||||
|
||||
@ -79,13 +79,13 @@ export const computeAggregateValueAndLabel = ({
|
||||
value = `${formatNumber(Number(aggregateValue) * 100)}%`;
|
||||
} else {
|
||||
switch (field.type) {
|
||||
case FieldMetadataType.Currency: {
|
||||
case FieldMetadataType.CURRENCY: {
|
||||
value = Number(aggregateValue);
|
||||
value = formatAmount(value / 1_000_000);
|
||||
break;
|
||||
}
|
||||
|
||||
case FieldMetadataType.Number: {
|
||||
case FieldMetadataType.NUMBER: {
|
||||
value = Number(aggregateValue);
|
||||
const { decimals, type } = field.settings ?? {};
|
||||
value =
|
||||
@ -95,7 +95,7 @@ export const computeAggregateValueAndLabel = ({
|
||||
break;
|
||||
}
|
||||
|
||||
case FieldMetadataType.DateTime: {
|
||||
case FieldMetadataType.DATE_TIME: {
|
||||
value = aggregateValue as string;
|
||||
value = formatDateTimeString({
|
||||
value,
|
||||
@ -107,7 +107,7 @@ export const computeAggregateValueAndLabel = ({
|
||||
break;
|
||||
}
|
||||
|
||||
case FieldMetadataType.Date: {
|
||||
case FieldMetadataType.DATE: {
|
||||
value = aggregateValue as string;
|
||||
value = formatDateString({
|
||||
value,
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
import { formatFieldMetadataItemAsFieldDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsFieldDefinition';
|
||||
import { FieldDefinition } from '@/object-record/record-field/types/FieldDefinition';
|
||||
import {
|
||||
FieldActorMetadata,
|
||||
FieldFullNameMetadata,
|
||||
FieldRatingMetadata,
|
||||
FieldSelectMetadata,
|
||||
FieldTextMetadata,
|
||||
FieldActorMetadata,
|
||||
FieldFullNameMetadata,
|
||||
FieldRatingMetadata,
|
||||
FieldSelectMetadata,
|
||||
FieldTextMetadata,
|
||||
} from '@/object-record/record-field/types/FieldMetadata';
|
||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems';
|
||||
@ -17,7 +17,7 @@ export const textfieldDefinition: FieldDefinition<FieldTextMetadata> = {
|
||||
label: 'User Name',
|
||||
iconName: 'User',
|
||||
defaultValue: '',
|
||||
type: FieldMetadataType.Text,
|
||||
type: FieldMetadataType.TEXT,
|
||||
metadata: { placeHolder: 'John Doe', fieldName: 'userName' },
|
||||
};
|
||||
|
||||
@ -44,7 +44,7 @@ export const selectFieldDefinition: FieldDefinition<FieldSelectMetadata> = {
|
||||
fieldMetadataId,
|
||||
label: 'Account Owner',
|
||||
iconName: 'iconName',
|
||||
type: FieldMetadataType.Select,
|
||||
type: FieldMetadataType.SELECT,
|
||||
defaultValue: null,
|
||||
metadata: {
|
||||
fieldName: 'accountOwner',
|
||||
@ -57,7 +57,7 @@ export const fullNameFieldDefinition: FieldDefinition<FieldFullNameMetadata> = {
|
||||
fieldMetadataId,
|
||||
label: 'Display Name',
|
||||
iconName: 'profile',
|
||||
type: FieldMetadataType.FullName,
|
||||
type: FieldMetadataType.FULL_NAME,
|
||||
defaultValue: { firstName: '', lastName: '' },
|
||||
metadata: {
|
||||
fieldName: 'displayName',
|
||||
@ -77,7 +77,7 @@ export const ratingFieldDefinition: FieldDefinition<FieldRatingMetadata> = {
|
||||
fieldMetadataId,
|
||||
label: 'Rating',
|
||||
iconName: 'iconName',
|
||||
type: FieldMetadataType.Rating,
|
||||
type: FieldMetadataType.RATING,
|
||||
defaultValue: null,
|
||||
metadata: {
|
||||
fieldName: 'rating',
|
||||
@ -104,7 +104,7 @@ export const actorFieldDefinition: FieldDefinition<FieldActorMetadata> = {
|
||||
fieldMetadataId,
|
||||
label: 'Created By',
|
||||
iconName: 'restart',
|
||||
type: FieldMetadataType.Actor,
|
||||
type: FieldMetadataType.ACTOR,
|
||||
defaultValue: { source: 'MANUAL', name: '' },
|
||||
metadata: {
|
||||
fieldName: 'actor',
|
||||
|
||||
@ -211,7 +211,7 @@ export const relationFromManyFieldDisplayMock = {
|
||||
objectMetadataNameSingular: 'person',
|
||||
options: null,
|
||||
},
|
||||
type: FieldMetadataType.Relation,
|
||||
type: FieldMetadataType.RELATION,
|
||||
iconName: 'IconUsers',
|
||||
defaultValue: null,
|
||||
editButtonIcon: {
|
||||
|
||||
@ -16,7 +16,7 @@ export const useAddressField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.Address,
|
||||
FieldMetadataType.ADDRESS,
|
||||
isFieldAddress,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -12,7 +12,7 @@ import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
export const useArrayField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Array, isFieldArray, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.ARRAY, isFieldArray, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ export const useBooleanField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.Boolean,
|
||||
FieldMetadataType.BOOLEAN,
|
||||
isFieldBoolean,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -17,7 +17,7 @@ export const useCurrencyField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.Currency,
|
||||
FieldMetadataType.CURRENCY,
|
||||
isFieldCurrency,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -14,7 +14,7 @@ export const useDateField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope, clearable } =
|
||||
useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Date, isFieldDate, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.DATE, isFieldDate, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ export const useDateTimeField = () => {
|
||||
useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.DateTime,
|
||||
FieldMetadataType.DATE_TIME,
|
||||
isFieldDateTime,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -15,7 +15,7 @@ import { assertFieldMetadata } from '../../types/guards/assertFieldMetadata';
|
||||
export const useEmailsField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Emails, isFieldEmails, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.EMAILS, isFieldEmails, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ export const useFullNameField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.FullName,
|
||||
FieldMetadataType.FULL_NAME,
|
||||
isFieldFullName,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -16,7 +16,7 @@ export const useJsonField = () => {
|
||||
useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.RawJson,
|
||||
FieldMetadataType.RAW_JSON,
|
||||
isFieldRawJson,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -15,7 +15,7 @@ import { assertFieldMetadata } from '../../types/guards/assertFieldMetadata';
|
||||
export const useLinksField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Links, isFieldLinks, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.LINKS, isFieldLinks, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ export const useMultiSelectField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.MultiSelect,
|
||||
FieldMetadataType.MULTI_SELECT,
|
||||
isFieldMultiSelect,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -20,7 +20,7 @@ import { isFieldNumber } from '../../types/guards/isFieldNumber';
|
||||
export const useNumberField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Number, isFieldNumber, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.NUMBER, isFieldNumber, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ import { isFieldNumber } from '../../types/guards/isFieldNumber';
|
||||
export const useNumberFieldDisplay = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Number, isFieldNumber, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.NUMBER, isFieldNumber, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
const fieldValue = useRecordFieldValue<number | null>(recordId, fieldName);
|
||||
|
||||
@ -15,7 +15,7 @@ import { assertFieldMetadata } from '../../types/guards/assertFieldMetadata';
|
||||
export const usePhonesField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Phones, isFieldPhones, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.PHONES, isFieldPhones, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ import { isFieldRating } from '../../types/guards/isFieldRating';
|
||||
export const useRatingField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Rating, isFieldRating, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.RATING, isFieldRating, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ export const useRelationField = <
|
||||
const button = useGetButtonIcon();
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.Relation,
|
||||
FieldMetadataType.RELATION,
|
||||
isFieldRelation,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -25,7 +25,7 @@ export const useRelationFromManyFieldDisplay = () => {
|
||||
}
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.Relation,
|
||||
FieldMetadataType.RELATION,
|
||||
isFieldRelation,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -25,7 +25,7 @@ export const useRelationToOneFieldDisplay = () => {
|
||||
}
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.Relation,
|
||||
FieldMetadataType.RELATION,
|
||||
isFieldRelation,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -19,7 +19,7 @@ export const useRichTextField = () => {
|
||||
useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.RichText,
|
||||
FieldMetadataType.RICH_TEXT,
|
||||
isFieldRichText,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -14,7 +14,7 @@ export const useRichTextFieldDisplay = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.RichText,
|
||||
FieldMetadataType.RICH_TEXT,
|
||||
isFieldRichText,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -15,7 +15,7 @@ import { isFieldSelectValue } from '../../types/guards/isFieldSelectValue';
|
||||
export const useSelectField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Select, isFieldSelect, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.SELECT, isFieldSelect, fieldDefinition);
|
||||
|
||||
const { fieldName } = fieldDefinition.metadata;
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ export const useTextField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope, maxWidth } =
|
||||
useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Text, isFieldText, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.TEXT, isFieldText, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import { isFieldTextValue } from '../../types/guards/isFieldTextValue';
|
||||
export const useUuidField = () => {
|
||||
const { recordId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(FieldMetadataType.Uuid, isFieldUuid, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.UUID, isFieldUuid, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ export const ArrayFieldInput = ({
|
||||
onCancel={onCancel}
|
||||
onClickOutside={onClickOutside}
|
||||
placeholder="Enter value"
|
||||
fieldMetadataType={FieldMetadataType.Array}
|
||||
fieldMetadataType={FieldMetadataType.ARRAY}
|
||||
renderItem={({ value, index, handleEdit, handleDelete }) => (
|
||||
<ArrayFieldMenuItem
|
||||
key={index}
|
||||
|
||||
@ -51,7 +51,7 @@ export const EmailsFieldInput = ({
|
||||
onCancel={onCancel}
|
||||
onClickOutside={onClickOutside}
|
||||
placeholder="Email"
|
||||
fieldMetadataType={FieldMetadataType.Emails}
|
||||
fieldMetadataType={FieldMetadataType.EMAILS}
|
||||
validateInput={validateInput}
|
||||
renderItem={({
|
||||
value: email,
|
||||
|
||||
@ -55,7 +55,7 @@ export const LinksFieldInput = ({
|
||||
onCancel={onCancel}
|
||||
onClickOutside={onClickOutside}
|
||||
placeholder="URL"
|
||||
fieldMetadataType={FieldMetadataType.Links}
|
||||
fieldMetadataType={FieldMetadataType.LINKS}
|
||||
validateInput={(input) => ({
|
||||
isValid: absoluteUrlSchema.safeParse(input).success,
|
||||
errorMessage: '',
|
||||
|
||||
@ -95,19 +95,19 @@ export const MultiItemFieldInput = <T,>({
|
||||
const handleEditButtonClick = (index: number) => {
|
||||
let item;
|
||||
switch (fieldMetadataType) {
|
||||
case FieldMetadataType.Links:
|
||||
case FieldMetadataType.LINKS:
|
||||
item = items[index] as { label: string; url: string };
|
||||
setInputValue(item.url || '');
|
||||
break;
|
||||
case FieldMetadataType.Phones:
|
||||
case FieldMetadataType.PHONES:
|
||||
item = items[index] as PhoneRecord;
|
||||
setInputValue(item.callingCode + item.number);
|
||||
break;
|
||||
case FieldMetadataType.Emails:
|
||||
case FieldMetadataType.EMAILS:
|
||||
item = items[index] as string;
|
||||
setInputValue(item);
|
||||
break;
|
||||
case FieldMetadataType.Array:
|
||||
case FieldMetadataType.ARRAY:
|
||||
item = items[index] as string;
|
||||
setInputValue(item);
|
||||
break;
|
||||
|
||||
@ -102,7 +102,7 @@ export const PhonesFieldInput = ({
|
||||
onClickOutside={onClickOutside}
|
||||
onCancel={onCancel}
|
||||
placeholder="Phone"
|
||||
fieldMetadataType={FieldMetadataType.Phones}
|
||||
fieldMetadataType={FieldMetadataType.PHONES}
|
||||
formatInput={(input) => {
|
||||
const phone = parsePhoneNumber(input);
|
||||
if (phone !== undefined) {
|
||||
|
||||
@ -53,7 +53,7 @@ const AddressInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldMetadataId: 'text',
|
||||
label: 'Address',
|
||||
type: FieldMetadataType.Address,
|
||||
type: FieldMetadataType.ADDRESS,
|
||||
iconName: 'IconTag',
|
||||
metadata: {
|
||||
fieldName: 'Address',
|
||||
|
||||
@ -45,7 +45,7 @@ const BooleanFieldInputWithContext = ({
|
||||
fieldMetadataId: 'boolean',
|
||||
label: 'Boolean',
|
||||
iconName: 'Icon123',
|
||||
type: FieldMetadataType.Boolean,
|
||||
type: FieldMetadataType.BOOLEAN,
|
||||
metadata: {
|
||||
fieldName: 'Boolean',
|
||||
objectMetadataNameSingular: 'person',
|
||||
|
||||
@ -72,7 +72,7 @@ const DateFieldInputWithContext = ({
|
||||
fieldMetadataId: 'date',
|
||||
defaultValue: null,
|
||||
label: 'Date',
|
||||
type: FieldMetadataType.DateTime,
|
||||
type: FieldMetadataType.DATE_TIME,
|
||||
iconName: 'IconCalendarEvent',
|
||||
metadata: {
|
||||
fieldName: 'Date',
|
||||
|
||||
@ -48,7 +48,7 @@ const NumberFieldInputWithContext = ({
|
||||
fieldMetadataId: 'number',
|
||||
label: 'Number',
|
||||
iconName: 'Icon123',
|
||||
type: FieldMetadataType.Number,
|
||||
type: FieldMetadataType.NUMBER,
|
||||
metadata: {
|
||||
fieldName: 'number',
|
||||
placeHolder: 'Enter number',
|
||||
|
||||
@ -46,7 +46,7 @@ const RatingFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldMetadataId: 'rating',
|
||||
label: 'Rating',
|
||||
type: FieldMetadataType.Rating,
|
||||
type: FieldMetadataType.RATING,
|
||||
iconName: 'Icon123',
|
||||
metadata: {
|
||||
fieldName: 'Rating',
|
||||
|
||||
@ -46,7 +46,7 @@ const RelationManyFieldInputWithContext = () => {
|
||||
fieldDefinition={{
|
||||
fieldMetadataId: 'relation',
|
||||
label: 'People',
|
||||
type: FieldMetadataType.Relation,
|
||||
type: FieldMetadataType.RELATION,
|
||||
iconName: 'IconLink',
|
||||
metadata: {
|
||||
fieldName: 'people',
|
||||
|
||||
@ -61,7 +61,7 @@ const RelationToOneFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldMetadataId: 'relation',
|
||||
label: 'Relation',
|
||||
type: FieldMetadataType.Relation,
|
||||
type: FieldMetadataType.RELATION,
|
||||
iconName: 'IconLink',
|
||||
metadata: {
|
||||
fieldName: 'Relation',
|
||||
|
||||
@ -47,7 +47,7 @@ const TextFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldMetadataId: 'text',
|
||||
label: 'Text',
|
||||
type: FieldMetadataType.Text,
|
||||
type: FieldMetadataType.TEXT,
|
||||
iconName: 'IconTag',
|
||||
metadata: {
|
||||
fieldName: 'Text',
|
||||
|
||||
@ -17,7 +17,7 @@ export const useUpdateRelationFromManyFieldInput = ({
|
||||
const { recordId, fieldDefinition } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
FieldMetadataType.Relation,
|
||||
FieldMetadataType.RELATION,
|
||||
isFieldRelation,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldActorMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldActor = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldActorMetadata> =>
|
||||
field.type === FieldMetadataType.Actor;
|
||||
field.type === FieldMetadataType.ACTOR;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldAddressMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldAddress = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldAddressMetadata> =>
|
||||
field.type === FieldMetadataType.Address;
|
||||
field.type === FieldMetadataType.ADDRESS;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldArrayMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldArray = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldArrayMetadata> =>
|
||||
field.type === FieldMetadataType.Array;
|
||||
field.type === FieldMetadataType.ARRAY;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldBooleanMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldBoolean = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldBooleanMetadata> =>
|
||||
field.type === FieldMetadataType.Boolean;
|
||||
field.type === FieldMetadataType.BOOLEAN;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldCurrencyMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldCurrency = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldCurrencyMetadata> =>
|
||||
field.type === FieldMetadataType.Currency;
|
||||
field.type === FieldMetadataType.CURRENCY;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldDateTimeMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldDateTime = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldDateTimeMetadata> =>
|
||||
field.type === FieldMetadataType.DateTime;
|
||||
field.type === FieldMetadataType.DATE_TIME;
|
||||
|
||||
@ -10,5 +10,5 @@ export const isFieldDisplayedAsPhone = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type' | 'metadata'>,
|
||||
): field is FieldDefinition<FieldTextMetadata> =>
|
||||
field.metadata.objectMetadataNameSingular === CoreObjectNameSingular.Person &&
|
||||
field.type === FieldMetadataType.Text &&
|
||||
field.type === FieldMetadataType.TEXT &&
|
||||
field.metadata.fieldName === 'phone';
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldEmailsMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldEmails = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldEmailsMetadata> =>
|
||||
field.type === FieldMetadataType.Emails;
|
||||
field.type === FieldMetadataType.EMAILS;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldFullNameMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldFullName = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldFullNameMetadata> =>
|
||||
field.type === FieldMetadataType.FullName;
|
||||
field.type === FieldMetadataType.FULL_NAME;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldLinksMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldLinks = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldLinksMetadata> =>
|
||||
field.type === FieldMetadataType.Links;
|
||||
field.type === FieldMetadataType.LINKS;
|
||||
|
||||
@ -8,4 +8,4 @@ import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
export const isFieldMultiSelect = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldMultiSelectMetadata> =>
|
||||
field.type === FieldMetadataType.MultiSelect;
|
||||
field.type === FieldMetadataType.MULTI_SELECT;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldNumberMetadata } from '../FieldMetadata';
|
||||
export const isFieldNumber = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldNumberMetadata> =>
|
||||
field.type === FieldMetadataType.Number;
|
||||
field.type === FieldMetadataType.NUMBER;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldPhonesMetadata } from '../FieldMetadata';
|
||||
export const isFieldPhones = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldPhonesMetadata> =>
|
||||
field.type === FieldMetadataType.Phones;
|
||||
field.type === FieldMetadataType.PHONES;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldPositionMetadata } from '../FieldMetadata';
|
||||
export const isFieldPosition = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldPositionMetadata> =>
|
||||
field.type === FieldMetadataType.Position;
|
||||
field.type === FieldMetadataType.POSITION;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldRatingMetadata } from '../FieldMetadata';
|
||||
export const isFieldRating = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldRatingMetadata> =>
|
||||
field.type === FieldMetadataType.Rating;
|
||||
field.type === FieldMetadataType.RATING;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldRawJsonMetadata } from '../FieldMetadata';
|
||||
export const isFieldRawJson = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldRawJsonMetadata> =>
|
||||
field.type === FieldMetadataType.RawJson;
|
||||
field.type === FieldMetadataType.RAW_JSON;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldRelationMetadata } from '../FieldMetadata';
|
||||
export const isFieldRelation = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldRelationMetadata> =>
|
||||
field.type === FieldMetadataType.Relation;
|
||||
field.type === FieldMetadataType.RELATION;
|
||||
|
||||
@ -8,4 +8,4 @@ export const isFieldRelationFromManyObjects = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type' | 'metadata'>,
|
||||
): field is FieldDefinition<FieldMetadata> =>
|
||||
isFieldRelation(field) &&
|
||||
field.metadata.relationType === RelationDefinitionType.OneToMany;
|
||||
field.metadata.relationType === RelationDefinitionType.ONE_TO_MANY;
|
||||
|
||||
@ -8,4 +8,4 @@ export const isFieldRelationToOneObject = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type' | 'metadata'>,
|
||||
): field is FieldDefinition<FieldMetadata> =>
|
||||
isFieldRelation(field) &&
|
||||
field.metadata.relationType === RelationDefinitionType.ManyToOne;
|
||||
field.metadata.relationType === RelationDefinitionType.MANY_TO_ONE;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldRichTextMetadata } from '../FieldMetadata';
|
||||
export const isFieldRichText = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldRichTextMetadata> =>
|
||||
field.type === FieldMetadataType.RichText;
|
||||
field.type === FieldMetadataType.RICH_TEXT;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldSelectMetadata } from '../FieldMetadata';
|
||||
export const isFieldSelect = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldSelectMetadata> =>
|
||||
field.type === FieldMetadataType.Select;
|
||||
field.type === FieldMetadataType.SELECT;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldTextMetadata } from '../FieldMetadata';
|
||||
export const isFieldText = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldTextMetadata> =>
|
||||
field.type === FieldMetadataType.Text;
|
||||
field.type === FieldMetadataType.TEXT;
|
||||
|
||||
@ -7,4 +7,4 @@ import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
export const isFieldTsVector = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldTsVectorMetadata> =>
|
||||
field.type === FieldMetadataType.TsVector;
|
||||
field.type === FieldMetadataType.TS_VECTOR;
|
||||
|
||||
@ -6,4 +6,4 @@ import { FieldMetadata, FieldUuidMetadata } from '../FieldMetadata';
|
||||
export const isFieldUuid = (
|
||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||
): field is FieldDefinition<FieldUuidMetadata> =>
|
||||
field.type === FieldMetadataType.Uuid;
|
||||
field.type === FieldMetadataType.UUID;
|
||||
|
||||
@ -76,7 +76,7 @@ describe('isFieldValueEmpty', () => {
|
||||
fieldMetadataId,
|
||||
label: 'Annual Income',
|
||||
iconName: 'cashCow',
|
||||
type: FieldMetadataType.Currency,
|
||||
type: FieldMetadataType.CURRENCY,
|
||||
metadata: {
|
||||
fieldName: 'annualIncome',
|
||||
placeHolder: '100000',
|
||||
|
||||
@ -81,25 +81,25 @@ describe('isFieldValueReadOnly', () => {
|
||||
expect(result).toBe(true);
|
||||
});
|
||||
|
||||
it('should return true if fieldType is FieldMetadataType.Actor', () => {
|
||||
it('should return true if fieldType is FieldMetadataType.ACTOR', () => {
|
||||
const result = isFieldValueReadOnly({
|
||||
fieldType: FieldMetadataType.Actor,
|
||||
fieldType: FieldMetadataType.ACTOR,
|
||||
});
|
||||
|
||||
expect(result).toBe(true);
|
||||
});
|
||||
|
||||
it('should return true if fieldType is FieldMetadataType.RichText', () => {
|
||||
it('should return true if fieldType is FieldMetadataType.RICH_TEXT', () => {
|
||||
const result = isFieldValueReadOnly({
|
||||
fieldType: FieldMetadataType.RichText,
|
||||
fieldType: FieldMetadataType.RICH_TEXT,
|
||||
});
|
||||
|
||||
expect(result).toBe(true);
|
||||
});
|
||||
|
||||
it('should return false if fieldType is not FieldMetadataType.Actor or FieldMetadataType.RichText', () => {
|
||||
it('should return false if fieldType is not FieldMetadataType.ACTOR or FieldMetadataType.RICH_TEXT', () => {
|
||||
const result = isFieldValueReadOnly({
|
||||
fieldType: FieldMetadataType.Text,
|
||||
fieldType: FieldMetadataType.TEXT,
|
||||
});
|
||||
|
||||
expect(result).toBe(false);
|
||||
|
||||
@ -166,18 +166,18 @@ export const isRecordMatchingFilter = ({
|
||||
}
|
||||
|
||||
switch (objectMetadataField.type) {
|
||||
case FieldMetadataType.Rating:
|
||||
case FieldMetadataType.RATING:
|
||||
return isMatchingRatingFilter({
|
||||
ratingFilter: filterValue as RatingFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
case FieldMetadataType.Text: {
|
||||
case FieldMetadataType.TEXT: {
|
||||
return isMatchingStringFilter({
|
||||
stringFilter: filterValue as StringFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.RichText: {
|
||||
case FieldMetadataType.RICH_TEXT: {
|
||||
// TODO: Implement a better rich text filter once it becomes a composite field
|
||||
// See this issue for more context: https://github.com/twentyhq/twenty/issues/7613#issuecomment-2408944585
|
||||
// This should be tackled in Q4'24
|
||||
@ -186,29 +186,29 @@ export const isRecordMatchingFilter = ({
|
||||
value: record[filterKey],
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Select:
|
||||
case FieldMetadataType.SELECT:
|
||||
return isMatchingSelectFilter({
|
||||
selectFilter: filterValue as SelectFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
case FieldMetadataType.MultiSelect:
|
||||
case FieldMetadataType.MULTI_SELECT:
|
||||
return isMatchingMultiSelectFilter({
|
||||
multiSelectFilter: filterValue as MultiSelectFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
case FieldMetadataType.Array: {
|
||||
case FieldMetadataType.ARRAY: {
|
||||
return isMatchingArrayFilter({
|
||||
arrayFilter: filterValue as ArrayFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.RawJson: {
|
||||
case FieldMetadataType.RAW_JSON: {
|
||||
return isMatchingRawJsonFilter({
|
||||
rawJsonFilter: filterValue as RawJsonFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.FullName: {
|
||||
case FieldMetadataType.FULL_NAME: {
|
||||
const fullNameFilter = filterValue as FullNameFilter;
|
||||
|
||||
return (
|
||||
@ -224,7 +224,7 @@ export const isRecordMatchingFilter = ({
|
||||
}))
|
||||
);
|
||||
}
|
||||
case FieldMetadataType.Address: {
|
||||
case FieldMetadataType.ADDRESS: {
|
||||
const addressFilter = filterValue as AddressFilter;
|
||||
|
||||
const keys = [
|
||||
@ -248,7 +248,7 @@ export const isRecordMatchingFilter = ({
|
||||
});
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Links: {
|
||||
case FieldMetadataType.LINKS: {
|
||||
const linksFilter = filterValue as LinksFilter;
|
||||
|
||||
const keys = ['primaryLinkLabel', 'primaryLinkUrl'] as const;
|
||||
@ -265,39 +265,39 @@ export const isRecordMatchingFilter = ({
|
||||
});
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Date:
|
||||
case FieldMetadataType.DateTime: {
|
||||
case FieldMetadataType.DATE:
|
||||
case FieldMetadataType.DATE_TIME: {
|
||||
return isMatchingDateFilter({
|
||||
dateFilter: filterValue as DateFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Number:
|
||||
case FieldMetadataType.Numeric: {
|
||||
case FieldMetadataType.NUMBER:
|
||||
case FieldMetadataType.NUMERIC: {
|
||||
return isMatchingFloatFilter({
|
||||
floatFilter: filterValue as FloatFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Uuid: {
|
||||
case FieldMetadataType.UUID: {
|
||||
return isMatchingUUIDFilter({
|
||||
uuidFilter: filterValue as UUIDFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Boolean: {
|
||||
case FieldMetadataType.BOOLEAN: {
|
||||
return isMatchingBooleanFilter({
|
||||
booleanFilter: filterValue as BooleanFilter,
|
||||
value: record[filterKey],
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Currency: {
|
||||
case FieldMetadataType.CURRENCY: {
|
||||
return isMatchingCurrencyFilter({
|
||||
currencyFilter: filterValue as CurrencyFilter,
|
||||
value: record[filterKey].amountMicros,
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Actor: {
|
||||
case FieldMetadataType.ACTOR: {
|
||||
const actorFilter = filterValue as ActorFilter;
|
||||
|
||||
return (
|
||||
@ -308,7 +308,7 @@ export const isRecordMatchingFilter = ({
|
||||
})
|
||||
);
|
||||
}
|
||||
case FieldMetadataType.Emails: {
|
||||
case FieldMetadataType.EMAILS: {
|
||||
const emailsFilter = filterValue as EmailsFilter;
|
||||
|
||||
if (emailsFilter.primaryEmail === undefined) {
|
||||
@ -320,7 +320,7 @@ export const isRecordMatchingFilter = ({
|
||||
value: record[filterKey].primaryEmail,
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Phones: {
|
||||
case FieldMetadataType.PHONES: {
|
||||
const phonesFilter = filterValue as PhonesFilter;
|
||||
|
||||
const keys: (keyof PhonesFilter)[] = ['primaryPhoneNumber'];
|
||||
@ -337,7 +337,7 @@ export const isRecordMatchingFilter = ({
|
||||
});
|
||||
});
|
||||
}
|
||||
case FieldMetadataType.Relation: {
|
||||
case FieldMetadataType.RELATION: {
|
||||
throw new Error(
|
||||
`Not implemented yet, use UUID filter instead on the corredponding "${filterKey}Id" field`,
|
||||
);
|
||||
|
||||
@ -16,7 +16,7 @@ describe('generateCsv', () => {
|
||||
label: 'Relation',
|
||||
metadata: {
|
||||
fieldName: 'relation',
|
||||
relationType: RelationDefinitionType.ManyToOne,
|
||||
relationType: RelationDefinitionType.MANY_TO_ONE,
|
||||
},
|
||||
},
|
||||
] as ColumnDefinition<FieldMetadata>[];
|
||||
|
||||
@ -13,7 +13,7 @@ export const useExportProcessRecordsForCSV = (objectNameSingular: string) => {
|
||||
const processRecordsForCSVExport = (records: ObjectRecord[]) => {
|
||||
return records.map((record) => {
|
||||
const currencyFields = objectMetadataItem.fields.filter(
|
||||
(field) => field.type === FieldMetadataType.Currency,
|
||||
(field) => field.type === FieldMetadataType.CURRENCY,
|
||||
);
|
||||
|
||||
const processedRecord = {
|
||||
|
||||
@ -36,12 +36,12 @@ export const generateCsv: GenerateExport = ({
|
||||
const columnsToExport = columns.filter(
|
||||
(col) =>
|
||||
!('relationType' in col.metadata && col.metadata.relationType) ||
|
||||
col.metadata.relationType === RelationDefinitionType.ManyToOne,
|
||||
col.metadata.relationType === RelationDefinitionType.MANY_TO_ONE,
|
||||
);
|
||||
|
||||
const objectIdColumn: ColumnDefinition<FieldMetadata> = {
|
||||
fieldMetadataId: '',
|
||||
type: FieldMetadataType.Uuid,
|
||||
type: FieldMetadataType.UUID,
|
||||
iconName: '',
|
||||
label: `Id`,
|
||||
metadata: {
|
||||
|
||||
@ -86,7 +86,7 @@ export const RecordInlineCellContainer = () => {
|
||||
const { recordId, fieldDefinition } = useContext(FieldContext);
|
||||
|
||||
if (isFieldText(fieldDefinition)) {
|
||||
assertFieldMetadata(FieldMetadataType.Text, isFieldText, fieldDefinition);
|
||||
assertFieldMetadata(FieldMetadataType.TEXT, isFieldText, fieldDefinition);
|
||||
}
|
||||
|
||||
const { setIsFocused } = useFieldFocus();
|
||||
|
||||
@ -62,7 +62,7 @@ export const FieldsCard = ({
|
||||
fieldMetadataItem.name !== 'deletedAt',
|
||||
),
|
||||
(fieldMetadataItem) =>
|
||||
fieldMetadataItem.type === FieldMetadataType.Relation
|
||||
fieldMetadataItem.type === FieldMetadataType.RELATION
|
||||
? 'relationFieldMetadataItems'
|
||||
: 'inlineFieldMetadataItems',
|
||||
);
|
||||
|
||||
@ -77,7 +77,7 @@ export const SummaryCard = ({
|
||||
fieldDefinition: {
|
||||
type:
|
||||
labelIdentifierFieldMetadataItem?.type ||
|
||||
FieldMetadataType.Text,
|
||||
FieldMetadataType.TEXT,
|
||||
iconName: '',
|
||||
fieldMetadataId: labelIdentifierFieldMetadataItem?.id ?? '',
|
||||
label: labelIdentifierFieldMetadataItem?.label || '',
|
||||
|
||||
@ -269,7 +269,7 @@ export const useRecordShowContainerTabs = (
|
||||
!hide.ifRelationsMissing.every((rel) =>
|
||||
objectMetadataItem.fields.some(
|
||||
(field) =>
|
||||
field.type === FieldMetadataType.Relation &&
|
||||
field.type === FieldMetadataType.RELATION &&
|
||||
field.name === rel &&
|
||||
field.isActive,
|
||||
),
|
||||
|
||||
@ -81,7 +81,7 @@ export const useRecordShowPage = (
|
||||
const labelIdentifierFieldValue =
|
||||
record?.[labelIdentifierFieldMetadataItem?.name ?? ''];
|
||||
const pageName =
|
||||
labelIdentifierFieldMetadataItem?.type === FieldMetadataType.FullName
|
||||
labelIdentifierFieldMetadataItem?.type === FieldMetadataType.FULL_NAME
|
||||
? [
|
||||
labelIdentifierFieldValue?.firstName,
|
||||
labelIdentifierFieldValue?.lastName,
|
||||
|
||||
@ -106,7 +106,7 @@ export const RecordDetailRelationRecordsListItem = ({
|
||||
relationType,
|
||||
} = fieldDefinition.metadata as FieldRelationMetadata;
|
||||
|
||||
const isToOneObject = relationType === RelationDefinitionType.ManyToOne;
|
||||
const isToOneObject = relationType === RelationDefinitionType.MANY_TO_ONE;
|
||||
const { objectMetadataItem: relationObjectMetadataItem } =
|
||||
useObjectMetadataItem({
|
||||
objectNameSingular: relationObjectMetadataNameSingular,
|
||||
|
||||
@ -69,8 +69,8 @@ export const RecordDetailRelationSection = ({
|
||||
>(recordStoreFamilySelector({ recordId, fieldName }));
|
||||
|
||||
// TODO: use new relation type
|
||||
const isToOneObject = relationType === RelationDefinitionType.ManyToOne;
|
||||
const isToManyObjects = relationType === RelationDefinitionType.OneToMany;
|
||||
const isToOneObject = relationType === RelationDefinitionType.MANY_TO_ONE;
|
||||
const isToManyObjects = relationType === RelationDefinitionType.ONE_TO_MANY;
|
||||
|
||||
const relationRecords: ObjectRecord[] =
|
||||
fieldValue && isToOneObject
|
||||
|
||||
@ -723,7 +723,7 @@ export const mockPerformance = {
|
||||
options: null,
|
||||
},
|
||||
iconName: 'IconBuildingSkyscraper',
|
||||
type: FieldMetadataType.Relation,
|
||||
type: FieldMetadataType.RELATION,
|
||||
position: 2,
|
||||
size: 150,
|
||||
isLabelIdentifier: false,
|
||||
|
||||
@ -4,27 +4,27 @@ import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
|
||||
export const FIELD_TYPES_AVAILABLE_FOR_NON_STANDARD_AGGREGATE_OPERATION = {
|
||||
[AGGREGATE_OPERATIONS.min]: [
|
||||
FieldMetadataType.Number,
|
||||
FieldMetadataType.Currency,
|
||||
FieldMetadataType.NUMBER,
|
||||
FieldMetadataType.CURRENCY,
|
||||
],
|
||||
[AGGREGATE_OPERATIONS.max]: [
|
||||
FieldMetadataType.Number,
|
||||
FieldMetadataType.Currency,
|
||||
FieldMetadataType.NUMBER,
|
||||
FieldMetadataType.CURRENCY,
|
||||
],
|
||||
[AGGREGATE_OPERATIONS.avg]: [
|
||||
FieldMetadataType.Number,
|
||||
FieldMetadataType.Currency,
|
||||
FieldMetadataType.NUMBER,
|
||||
FieldMetadataType.CURRENCY,
|
||||
],
|
||||
[AGGREGATE_OPERATIONS.sum]: [
|
||||
FieldMetadataType.Number,
|
||||
FieldMetadataType.Currency,
|
||||
FieldMetadataType.NUMBER,
|
||||
FieldMetadataType.CURRENCY,
|
||||
],
|
||||
[DATE_AGGREGATE_OPERATIONS.earliest]: [
|
||||
FieldMetadataType.DateTime,
|
||||
FieldMetadataType.Date,
|
||||
FieldMetadataType.DATE_TIME,
|
||||
FieldMetadataType.DATE,
|
||||
],
|
||||
[DATE_AGGREGATE_OPERATIONS.latest]: [
|
||||
FieldMetadataType.DateTime,
|
||||
FieldMetadataType.Date,
|
||||
FieldMetadataType.DATE_TIME,
|
||||
FieldMetadataType.DATE,
|
||||
],
|
||||
};
|
||||
|
||||
@ -26,7 +26,7 @@ export const recordTableCellContextValue: RecordTableCellContextValue = {
|
||||
fieldMetadataId: 'fieldMetadataId',
|
||||
label: 'label',
|
||||
iconName: 'iconName',
|
||||
type: FieldMetadataType.Text,
|
||||
type: FieldMetadataType.TEXT,
|
||||
metadata: {
|
||||
placeHolder: 'placeHolder',
|
||||
fieldName: 'fieldName',
|
||||
|
||||
@ -54,7 +54,7 @@ export const RecordTableColumnAggregateFooterMenuContent = () => {
|
||||
|
||||
const fieldIsRelation =
|
||||
objectMetadataItem.fields.find((field) => field.id === fieldMetadataId)
|
||||
?.type === FieldMetadataType.Relation;
|
||||
?.type === FieldMetadataType.RELATION;
|
||||
|
||||
const {
|
||||
updateViewFieldAggregateOperation,
|
||||
|
||||
@ -11,7 +11,7 @@ export const getAvailableAggregateOperationsForFieldMetadataType = ({
|
||||
}: {
|
||||
fieldMetadataType?: FieldMetadataType;
|
||||
}) => {
|
||||
if (fieldMetadataType === FieldMetadataType.Relation) {
|
||||
if (fieldMetadataType === FieldMetadataType.RELATION) {
|
||||
return [AGGREGATE_OPERATIONS.count];
|
||||
}
|
||||
|
||||
|
||||
@ -70,7 +70,7 @@ export const useAddNewRecordAndOpenRightDrawer = ({
|
||||
| { firstName: string | undefined; lastName: string | undefined };
|
||||
[key: string]: any;
|
||||
} =
|
||||
labelIdentifierType === FieldMetadataType.FullName
|
||||
labelIdentifierType === FieldMetadataType.FULL_NAME
|
||||
? {
|
||||
id: newRecordId,
|
||||
name:
|
||||
@ -85,7 +85,7 @@ export const useAddNewRecordAndOpenRightDrawer = ({
|
||||
|
||||
if (
|
||||
relationFieldMetadataItem?.relationDefinition?.direction ===
|
||||
RelationDefinitionType.ManyToOne
|
||||
RelationDefinitionType.MANY_TO_ONE
|
||||
) {
|
||||
createRecordPayload[
|
||||
`${relationFieldMetadataItem?.relationDefinition?.sourceFieldMetadata.name}Id`
|
||||
@ -96,7 +96,7 @@ export const useAddNewRecordAndOpenRightDrawer = ({
|
||||
|
||||
if (
|
||||
relationFieldMetadataItem?.relationDefinition?.direction ===
|
||||
RelationDefinitionType.OneToMany
|
||||
RelationDefinitionType.ONE_TO_MANY
|
||||
) {
|
||||
await updateOneRecord({
|
||||
idToUpdate: recordId,
|
||||
|
||||
@ -10,15 +10,15 @@ import { CompositeFieldLabels } from '@/object-record/spreadsheet-import/types/C
|
||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
|
||||
export const COMPOSITE_FIELD_IMPORT_LABELS = {
|
||||
[FieldMetadataType.FullName]: {
|
||||
[FieldMetadataType.FULL_NAME]: {
|
||||
firstNameLabel: 'First Name',
|
||||
lastNameLabel: 'Last Name',
|
||||
} satisfies CompositeFieldLabels<FieldFullNameValue>,
|
||||
[FieldMetadataType.Currency]: {
|
||||
[FieldMetadataType.CURRENCY]: {
|
||||
currencyCodeLabel: 'Currency Code',
|
||||
amountMicrosLabel: 'Amount',
|
||||
} satisfies CompositeFieldLabels<FieldCurrencyValue>,
|
||||
[FieldMetadataType.Address]: {
|
||||
[FieldMetadataType.ADDRESS]: {
|
||||
addressStreet1Label: 'Address 1',
|
||||
addressStreet2Label: 'Address 2',
|
||||
addressCityLabel: 'City',
|
||||
@ -28,18 +28,18 @@ export const COMPOSITE_FIELD_IMPORT_LABELS = {
|
||||
addressLatLabel: 'Latitude',
|
||||
addressLngLabel: 'Longitude',
|
||||
} satisfies CompositeFieldLabels<FieldAddressValue>,
|
||||
[FieldMetadataType.Links]: {
|
||||
[FieldMetadataType.LINKS]: {
|
||||
primaryLinkUrlLabel: 'Link URL',
|
||||
primaryLinkLabelLabel: 'Link Label',
|
||||
} satisfies Partial<CompositeFieldLabels<FieldLinksValue>>,
|
||||
[FieldMetadataType.Emails]: {
|
||||
[FieldMetadataType.EMAILS]: {
|
||||
primaryEmailLabel: 'Email',
|
||||
} satisfies Partial<CompositeFieldLabels<FieldEmailsValue>>,
|
||||
[FieldMetadataType.Phones]: {
|
||||
[FieldMetadataType.PHONES]: {
|
||||
primaryPhoneCountryCodeLabel: 'Phone country code',
|
||||
primaryPhoneNumberLabel: 'Phone number',
|
||||
} satisfies Partial<CompositeFieldLabels<FieldPhonesValue>>,
|
||||
[FieldMetadataType.Actor]: {
|
||||
[FieldMetadataType.ACTOR]: {
|
||||
sourceLabel: 'Source',
|
||||
},
|
||||
};
|
||||
|
||||
@ -17,9 +17,9 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
|
||||
// Todo: refactor this to avoid this else if syntax with duplicated code
|
||||
for (const fieldMetadataItem of fieldMetadataItems) {
|
||||
if (fieldMetadataItem.type === FieldMetadataType.FullName) {
|
||||
if (fieldMetadataItem.type === FieldMetadataType.FULL_NAME) {
|
||||
const { firstNameLabel, lastNameLabel } =
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.FullName];
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.FULL_NAME];
|
||||
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
@ -46,7 +46,7 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
`${lastNameLabel} (${fieldMetadataItem.label})`,
|
||||
),
|
||||
});
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.Relation) {
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.RELATION) {
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
label: fieldMetadataItem.label + ' (ID)',
|
||||
@ -59,9 +59,9 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
fieldMetadataItem.label + ' (ID)',
|
||||
),
|
||||
});
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.Currency) {
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.CURRENCY) {
|
||||
const { currencyCodeLabel, amountMicrosLabel } =
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.Currency];
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.CURRENCY];
|
||||
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
@ -84,13 +84,13 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
type: 'input',
|
||||
},
|
||||
fieldValidationDefinitions: getSpreadSheetFieldValidationDefinitions(
|
||||
FieldMetadataType.Number,
|
||||
FieldMetadataType.NUMBER,
|
||||
`${amountMicrosLabel} (${fieldMetadataItem.label})`,
|
||||
),
|
||||
});
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.Address) {
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.ADDRESS) {
|
||||
Object.entries(
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.Address],
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.ADDRESS],
|
||||
).forEach(([_, fieldLabel]) => {
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
@ -106,9 +106,9 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
),
|
||||
});
|
||||
});
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.Links) {
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.LINKS) {
|
||||
Object.entries(
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.Links],
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.LINKS],
|
||||
).forEach(([_, fieldLabel]) => {
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
@ -124,7 +124,7 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
),
|
||||
});
|
||||
});
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.Select) {
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.SELECT) {
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
label: fieldMetadataItem.label,
|
||||
@ -143,7 +143,7 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
fieldMetadataItem.label + ' (ID)',
|
||||
),
|
||||
});
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.MultiSelect) {
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.MULTI_SELECT) {
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
label: fieldMetadataItem.label,
|
||||
@ -162,7 +162,7 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
fieldMetadataItem.label + ' (ID)',
|
||||
),
|
||||
});
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.Boolean) {
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.BOOLEAN) {
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
label: fieldMetadataItem.label,
|
||||
@ -175,9 +175,9 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
fieldMetadataItem.label,
|
||||
),
|
||||
});
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.Emails) {
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.EMAILS) {
|
||||
Object.entries(
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.Emails],
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.EMAILS],
|
||||
).forEach(([_, fieldLabel]) => {
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
@ -193,9 +193,9 @@ export const useBuildAvailableFieldsForImport = () => {
|
||||
),
|
||||
});
|
||||
});
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.Phones) {
|
||||
} else if (fieldMetadataItem.type === FieldMetadataType.PHONES) {
|
||||
Object.entries(
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.Phones],
|
||||
COMPOSITE_FIELD_IMPORT_LABELS[FieldMetadataType.PHONES],
|
||||
).forEach(([_, fieldLabel]) => {
|
||||
availableFieldsForImport.push({
|
||||
icon: getIcon(fieldMetadataItem.icon),
|
||||
|
||||
@ -39,9 +39,9 @@ export const useOpenObjectRecordsSpreadsheetImportDialog = (
|
||||
fieldMetadataItem.isActive &&
|
||||
(!fieldMetadataItem.isSystem || fieldMetadataItem.name === 'id') &&
|
||||
fieldMetadataItem.name !== 'createdAt' &&
|
||||
(fieldMetadataItem.type !== FieldMetadataType.Relation ||
|
||||
(fieldMetadataItem.type !== FieldMetadataType.RELATION ||
|
||||
fieldMetadataItem.relationDefinition?.direction ===
|
||||
RelationDefinitionType.ManyToOne),
|
||||
RelationDefinitionType.MANY_TO_ONE),
|
||||
)
|
||||
.sort((fieldMetadataItemA, fieldMetadataItemB) =>
|
||||
fieldMetadataItemA.name.localeCompare(fieldMetadataItemB.name),
|
||||
|
||||
@ -42,15 +42,15 @@ export const buildRecordFromImportedStructuredRow = (
|
||||
const importedFieldValue = importedStructuredRow[field.name];
|
||||
|
||||
switch (field.type) {
|
||||
case FieldMetadataType.Boolean:
|
||||
case FieldMetadataType.BOOLEAN:
|
||||
recordToBuild[field.name] =
|
||||
importedFieldValue === 'true' || importedFieldValue === true;
|
||||
break;
|
||||
case FieldMetadataType.Number:
|
||||
case FieldMetadataType.Numeric:
|
||||
case FieldMetadataType.NUMBER:
|
||||
case FieldMetadataType.NUMERIC:
|
||||
recordToBuild[field.name] = Number(importedFieldValue);
|
||||
break;
|
||||
case FieldMetadataType.Currency:
|
||||
case FieldMetadataType.CURRENCY:
|
||||
if (
|
||||
isDefined(
|
||||
importedStructuredRow[`${amountMicrosLabel} (${field.name})`],
|
||||
@ -71,7 +71,7 @@ export const buildRecordFromImportedStructuredRow = (
|
||||
};
|
||||
}
|
||||
break;
|
||||
case FieldMetadataType.Address: {
|
||||
case FieldMetadataType.ADDRESS: {
|
||||
if (
|
||||
isDefined(
|
||||
importedStructuredRow[`${addressStreet1Label} (${field.name})`] ||
|
||||
@ -115,7 +115,7 @@ export const buildRecordFromImportedStructuredRow = (
|
||||
}
|
||||
break;
|
||||
}
|
||||
case FieldMetadataType.Links: {
|
||||
case FieldMetadataType.LINKS: {
|
||||
if (
|
||||
isDefined(
|
||||
importedStructuredRow[`${primaryLinkUrlLabel} (${field.name})`] ||
|
||||
@ -134,7 +134,7 @@ export const buildRecordFromImportedStructuredRow = (
|
||||
}
|
||||
break;
|
||||
}
|
||||
case FieldMetadataType.Phones: {
|
||||
case FieldMetadataType.PHONES: {
|
||||
if (
|
||||
isDefined(
|
||||
importedStructuredRow[
|
||||
@ -161,7 +161,7 @@ export const buildRecordFromImportedStructuredRow = (
|
||||
}
|
||||
break;
|
||||
}
|
||||
case FieldMetadataType.Emails: {
|
||||
case FieldMetadataType.EMAILS: {
|
||||
if (
|
||||
isDefined(
|
||||
importedStructuredRow[`${primaryEmailLabel} (${field.name})`],
|
||||
@ -176,7 +176,7 @@ export const buildRecordFromImportedStructuredRow = (
|
||||
}
|
||||
break;
|
||||
}
|
||||
case FieldMetadataType.Relation:
|
||||
case FieldMetadataType.RELATION:
|
||||
if (
|
||||
isDefined(importedFieldValue) &&
|
||||
(isNonEmptyString(importedFieldValue) || importedFieldValue !== false)
|
||||
@ -184,7 +184,7 @@ export const buildRecordFromImportedStructuredRow = (
|
||||
recordToBuild[field.name + 'Id'] = importedFieldValue;
|
||||
}
|
||||
break;
|
||||
case FieldMetadataType.FullName:
|
||||
case FieldMetadataType.FULL_NAME:
|
||||
if (
|
||||
isDefined(
|
||||
importedStructuredRow[`${firstNameLabel} (${field.name})`] ??
|
||||
@ -199,13 +199,13 @@ export const buildRecordFromImportedStructuredRow = (
|
||||
};
|
||||
}
|
||||
break;
|
||||
case FieldMetadataType.Actor:
|
||||
case FieldMetadataType.ACTOR:
|
||||
recordToBuild[field.name] = {
|
||||
source: 'IMPORT',
|
||||
};
|
||||
break;
|
||||
case FieldMetadataType.Array:
|
||||
case FieldMetadataType.MultiSelect: {
|
||||
case FieldMetadataType.ARRAY:
|
||||
case FieldMetadataType.MULTI_SELECT: {
|
||||
const stringArrayJSONSchema = z
|
||||
.preprocess((value) => {
|
||||
try {
|
||||
@ -223,7 +223,7 @@ export const buildRecordFromImportedStructuredRow = (
|
||||
stringArrayJSONSchema.parse(importedFieldValue);
|
||||
break;
|
||||
}
|
||||
case FieldMetadataType.RawJson: {
|
||||
case FieldMetadataType.RAW_JSON: {
|
||||
if (typeof importedFieldValue === 'string') {
|
||||
try {
|
||||
recordToBuild[field.name] = JSON.parse(importedFieldValue);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user