feat: address composite field (#4492)

Added new Address field input type.

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
rostaklein
2024-03-28 16:50:38 +01:00
committed by GitHub
parent 22d4af2e0c
commit 3171d0c87b
56 changed files with 1839 additions and 716 deletions

View File

@ -18,6 +18,7 @@ export const formatFieldMetadataItemsAsFilterDefinitions = ({
FieldMetadataType.Number,
FieldMetadataType.Link,
FieldMetadataType.FullName,
FieldMetadataType.Address,
FieldMetadataType.Relation,
FieldMetadataType.Select,
FieldMetadataType.Currency,
@ -52,24 +53,32 @@ export const formatFieldMetadataItemAsFilterDefinition = ({
field.toRelationMetadata?.fromObjectMetadata.namePlural,
relationObjectMetadataNameSingular:
field.toRelationMetadata?.fromObjectMetadata.nameSingular,
type:
field.type === FieldMetadataType.DateTime
? 'DATE_TIME'
: field.type === FieldMetadataType.Link
? 'LINK'
: field.type === FieldMetadataType.FullName
? 'FULL_NAME'
: field.type === FieldMetadataType.Number
? 'NUMBER'
: field.type === FieldMetadataType.Currency
? 'CURRENCY'
: field.type === FieldMetadataType.Email
? 'TEXT'
: field.type === FieldMetadataType.Phone
? 'TEXT'
: field.type === FieldMetadataType.Relation
? 'RELATION'
: field.type === FieldMetadataType.Select
? 'SELECT'
: 'TEXT',
type: getFilterType(field.type),
});
const getFilterType = (fieldType: FieldMetadataType) => {
switch (fieldType) {
case FieldMetadataType.DateTime:
return 'DATE_TIME';
case FieldMetadataType.Link:
return 'LINK';
case FieldMetadataType.FullName:
return 'FULL_NAME';
case FieldMetadataType.Number:
return 'NUMBER';
case FieldMetadataType.Currency:
return 'CURRENCY';
case FieldMetadataType.Email:
return 'EMAIL';
case FieldMetadataType.Phone:
return 'PHONE';
case FieldMetadataType.Relation:
return 'RELATION';
case FieldMetadataType.Select:
return 'SELECT';
case FieldMetadataType.Address:
return 'ADDRESS';
default:
return 'TEXT';
}
};

View File

@ -106,6 +106,18 @@ ${mapObjectMetadataToGraphQLQuery({
{
firstName
lastName
}`;
} else if (fieldType === 'ADDRESS') {
return `${field.name}
{
addressStreet1
addressStreet2
addressCity
addressState
addressCountry
addressPostcode
addressLat
addressLng
}`;
}