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

@ -89,6 +89,57 @@ const get_subfieldsFromField = (nodeField: NodeField): NodeField[] => {
};
return [amountMicros, currencyCode];
}
case FieldMetadataType.ADDRESS: {
const address1: NodeField = {
type: 'TEXT',
name: 'addressStreet1',
label: 'Address',
description: 'Address',
isNullable: true,
defaultValue: null,
};
const address2: NodeField = {
type: 'TEXT',
name: 'addressStreet2',
label: 'Address 2',
description: 'Address 2',
isNullable: true,
defaultValue: null,
};
const city: NodeField = {
type: 'TEXT',
name: 'addressCity',
label: 'City',
description: 'City',
isNullable: true,
defaultValue: null,
};
const state: NodeField = {
type: 'TEXT',
name: 'addressState',
label: 'State',
description: 'State',
isNullable: true,
defaultValue: null,
};
const postalCode: NodeField = {
type: 'TEXT',
name: 'addressPostalCode',
label: 'Postal Code',
description: 'Postal Code',
isNullable: true,
defaultValue: null,
};
const country: NodeField = {
type: 'TEXT',
name: 'addressCountry',
label: 'Country',
description: 'Country',
isNullable: true,
defaultValue: null,
};
return [address1, address2, city, state, postalCode, country];
}
default:
throw new Error(`Unknown nodeField type: ${nodeField.type}`);
}
@ -109,6 +160,7 @@ export const computeInputFields = (
case FieldMetadataType.FULL_NAME:
case FieldMetadataType.LINK:
case FieldMetadataType.CURRENCY:
case FieldMetadataType.ADDRESS:
for (const subNodeField of get_subfieldsFromField(nodeField)) {
const field = {
key: `${nodeField.name}__${subNodeField.name}`,