From e58073519bbfa49bdc8fc124e9f9920f1024abc0 Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Mon, 23 Sep 2024 03:20:53 +0530 Subject: [PATCH 1/7] feat: added util for label --- src/languages/en.ts | 1 + src/languages/es.ts | 1 + src/libs/PolicyUtils.ts | 12 ++++++++++++ 3 files changed, 14 insertions(+) diff --git a/src/languages/en.ts b/src/languages/en.ts index eae87b70ecca..460b241b03ae 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -2680,6 +2680,7 @@ export default { importCustomFields: { chooseOptionBelow: 'Choose an option below:', requiredFieldError: (fieldName: string) => `Please enter the ${fieldName}`, + label: (importedTypes: string[]) => `Imported as ${importedTypes.join(' and ')}`, customSegments: { title: 'Custom segments/records', addText: 'Add custom segment/record', diff --git a/src/languages/es.ts b/src/languages/es.ts index d94db88f2720..6654776c2fbc 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -2724,6 +2724,7 @@ export default { importCustomFields: { chooseOptionBelow: 'Elija una de las opciones siguientes:', requiredFieldError: (fieldName: string) => `Por favor, introduzca el ${fieldName}`, + label: (importedTypes: string[]) => `Imported as ${importedTypes.join(' and ')}`, customSegments: { title: 'Segmentos/registros personalizados', addText: 'Añadir segmento/registro personalizado', diff --git a/src/libs/PolicyUtils.ts b/src/libs/PolicyUtils.ts index 45e285f6459c..f24e8fe48da4 100644 --- a/src/libs/PolicyUtils.ts +++ b/src/libs/PolicyUtils.ts @@ -828,6 +828,17 @@ function getCustomersOrJobsLabelNetSuite(policy: Policy | undefined, translate: return importedValueLabel.charAt(0).toUpperCase() + importedValueLabel.slice(1); } +function getNetSuiteImportCustomFieldLabel(policy: Policy | undefined, importField: ValueOf, translate: LocaleContextProps['translate']): string | undefined { + const fieldData = policy?.connections?.netsuite?.options?.config.syncOptions?.[importField] ?? []; + if (fieldData.length === 0) { + return undefined; + } + + const mappingSet = new Set(fieldData.map(item => item.mapping)); + const importedTypes = Array.from(mappingSet).map((mapping) => translate(`workspace.netsuite.import.importTypes.${mapping}.label`).toLowerCase()); + return translate(`workspace.netsuite.import.importCustomFields.label`, importedTypes); +} + function isNetSuiteCustomSegmentRecord(customField: NetSuiteCustomList | NetSuiteCustomSegment): boolean { return 'segmentName' in customField; } @@ -1127,6 +1138,7 @@ export { getDomainNameForPolicy, hasUnsupportedIntegration, getWorkflowApprovalsUnavailable, + getNetSuiteImportCustomFieldLabel }; export type {MemberEmailsToAccountIDs}; From 863c17376e8b245af7d7664273593a072bd70ef8 Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Mon, 23 Sep 2024 03:22:32 +0530 Subject: [PATCH 2/7] feat: update label --- .../workspace/accounting/netsuite/import/NetSuiteImportPage.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportPage.tsx b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportPage.tsx index 0c7ca49d1ec2..0965be4bca81 100644 --- a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportPage.tsx +++ b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportPage.tsx @@ -123,6 +123,7 @@ function NetSuiteImportPage({policy}: WithPolicyConnectionsProps) { shouldDisableStrikeThrough > Navigation.navigate(ROUTES.POLICY_ACCOUNTING_NETSUITE_IMPORT_CUSTOM_FIELD_MAPPING.getRoute(policyID, importField))} From dc73e8b5e2a6c4a70c73362e69ccf7e5ce2c5607 Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Mon, 23 Sep 2024 03:26:13 +0530 Subject: [PATCH 3/7] fix: update spanish translation --- src/languages/es.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index 6654776c2fbc..f475a4398bce 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -2724,7 +2724,7 @@ export default { importCustomFields: { chooseOptionBelow: 'Elija una de las opciones siguientes:', requiredFieldError: (fieldName: string) => `Por favor, introduzca el ${fieldName}`, - label: (importedTypes: string[]) => `Imported as ${importedTypes.join(' and ')}`, + label: (importedTypes: string[]) => `Importados como ${importedTypes.join(' y ')}`, customSegments: { title: 'Segmentos/registros personalizados', addText: 'Añadir segmento/registro personalizado', From 454fd46cfd287da313cb4d6a1d213567096a307e Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Mon, 23 Sep 2024 04:06:16 +0530 Subject: [PATCH 4/7] refactor: lint fixes --- src/libs/PolicyUtils.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/libs/PolicyUtils.ts b/src/libs/PolicyUtils.ts index f24e8fe48da4..b6ad8db06667 100644 --- a/src/libs/PolicyUtils.ts +++ b/src/libs/PolicyUtils.ts @@ -828,13 +828,17 @@ function getCustomersOrJobsLabelNetSuite(policy: Policy | undefined, translate: return importedValueLabel.charAt(0).toUpperCase() + importedValueLabel.slice(1); } -function getNetSuiteImportCustomFieldLabel(policy: Policy | undefined, importField: ValueOf, translate: LocaleContextProps['translate']): string | undefined { +function getNetSuiteImportCustomFieldLabel( + policy: Policy | undefined, + importField: ValueOf, + translate: LocaleContextProps['translate'], +): string | undefined { const fieldData = policy?.connections?.netsuite?.options?.config.syncOptions?.[importField] ?? []; if (fieldData.length === 0) { return undefined; } - const mappingSet = new Set(fieldData.map(item => item.mapping)); + const mappingSet = new Set(fieldData.map((item) => item.mapping)); const importedTypes = Array.from(mappingSet).map((mapping) => translate(`workspace.netsuite.import.importTypes.${mapping}.label`).toLowerCase()); return translate(`workspace.netsuite.import.importCustomFields.label`, importedTypes); } @@ -1138,7 +1142,7 @@ export { getDomainNameForPolicy, hasUnsupportedIntegration, getWorkflowApprovalsUnavailable, - getNetSuiteImportCustomFieldLabel + getNetSuiteImportCustomFieldLabel, }; export type {MemberEmailsToAccountIDs}; From c3afb4c1881a91c709f479f909b36f431b3d3d72 Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Tue, 1 Oct 2024 01:09:49 +0530 Subject: [PATCH 5/7] fix: order of labels --- src/libs/PolicyUtils.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libs/PolicyUtils.ts b/src/libs/PolicyUtils.ts index 98d7eb5e53d3..0f7f9302f042 100644 --- a/src/libs/PolicyUtils.ts +++ b/src/libs/PolicyUtils.ts @@ -845,7 +845,9 @@ function getNetSuiteImportCustomFieldLabel( } const mappingSet = new Set(fieldData.map((item) => item.mapping)); - const importedTypes = Array.from(mappingSet).map((mapping) => translate(`workspace.netsuite.import.importTypes.${mapping}.label`).toLowerCase()); + const importedTypes = Array.from(mappingSet) + .sort((a, b) => b.localeCompare(a)) + .map((mapping) => translate(`workspace.netsuite.import.importTypes.${mapping}.label`).toLowerCase()); return translate(`workspace.netsuite.import.importCustomFields.label`, importedTypes); } From 1f23a03a24169516a4ac74aba77c10b453ec9bfe Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Tue, 1 Oct 2024 01:18:13 +0530 Subject: [PATCH 6/7] refactor: add types for translation params --- src/languages/en.ts | 3 ++- src/languages/es.ts | 3 ++- src/languages/params.ts | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index 8427b19af0ce..93f18a9e000d 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -69,6 +69,7 @@ import type { GoBackMessageParams, GoToRoomParams, ImportedTagsMessageParams, + ImportedTypesParams, ImportFieldParams, ImportMembersSuccessfullDescriptionParams, ImportTagsSuccessfullDescriptionParams, @@ -2769,7 +2770,7 @@ const translations = { importTaxDescription: 'Import tax groups from NetSuite.', importCustomFields: { chooseOptionBelow: 'Choose an option below:', - label: (importedTypes: string[]) => `Imported as ${importedTypes.join(' and ')}`, + label: ({importedTypes}: ImportedTypesParams) => `Imported as ${importedTypes.join(' and ')}`, requiredFieldError: ({fieldName}: RequiredFieldParams) => `Please enter the ${fieldName}`, customSegments: { title: 'Custom segments/records', diff --git a/src/languages/es.ts b/src/languages/es.ts index abbf797c8c8b..f3bc549d4ebb 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -67,6 +67,7 @@ import type { GoBackMessageParams, GoToRoomParams, ImportedTagsMessageParams, + ImportedTypesParams, ImportFieldParams, ImportMembersSuccessfullDescriptionParams, ImportTagsSuccessfullDescriptionParams, @@ -2804,7 +2805,7 @@ const translations = { importTaxDescription: 'Importar grupos de impuestos desde NetSuite.', importCustomFields: { chooseOptionBelow: 'Elija una de las opciones siguientes:', - label: (importedTypes: string[]) => `Importados como ${importedTypes.join(' y ')}`, + label: ({importedTypes}: ImportedTypesParams) => `Importados como ${importedTypes.join(' y ')}`, requiredFieldError: ({fieldName}: RequiredFieldParams) => `Por favor, introduzca el ${fieldName}`, customSegments: { title: 'Segmentos/registros personalizados', diff --git a/src/languages/params.ts b/src/languages/params.ts index d51bb2d20e03..45912f999910 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -533,6 +533,10 @@ type AuthenticationErrorParams = { connectionName: string; }; +type ImportedTypesParams = { + importedTypes: string[]; +}; + export type { AuthenticationErrorParams, ImportMembersSuccessfullDescriptionParams, @@ -730,4 +734,5 @@ export type { CharacterLengthLimitParams, OptionalParam, AssignCardParams, + ImportedTypesParams, }; From 65f8753d42e3489c48ec2016aa10003189aaad6f Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Tue, 1 Oct 2024 01:24:14 +0530 Subject: [PATCH 7/7] fix: translation param --- src/libs/PolicyUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/PolicyUtils.ts b/src/libs/PolicyUtils.ts index 0f7f9302f042..f1c0c84fecda 100644 --- a/src/libs/PolicyUtils.ts +++ b/src/libs/PolicyUtils.ts @@ -848,7 +848,7 @@ function getNetSuiteImportCustomFieldLabel( const importedTypes = Array.from(mappingSet) .sort((a, b) => b.localeCompare(a)) .map((mapping) => translate(`workspace.netsuite.import.importTypes.${mapping}.label`).toLowerCase()); - return translate(`workspace.netsuite.import.importCustomFields.label`, importedTypes); + return translate(`workspace.netsuite.import.importCustomFields.label`, {importedTypes}); } function isNetSuiteCustomSegmentRecord(customField: NetSuiteCustomList | NetSuiteCustomSegment): boolean {