From fa7929481bcc5c941eb9ae8190c7702cffb2eaaf Mon Sep 17 00:00:00 2001 From: Vit Horacek Date: Sun, 5 Jul 2026 21:56:33 +0200 Subject: [PATCH 1/2] Fix Sage Intacct default vendor toggle when vendors list is empty Optional-chain through vendors[0]?.id on both reimbursable and non-reimbursable export pages to prevent a crash when enabling the default vendor toggle with an empty vendors array. Co-authored-by: Cursor --- .../intacct/export/SageIntacctNonReimbursableExpensesPage.tsx | 2 +- .../intacct/export/SageIntacctReimbursableExpensesPage.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx index be6b3e290a26..0988c9a651ca 100644 --- a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx +++ b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx @@ -105,7 +105,7 @@ function SageIntacctNonReimbursableExpensesPage({policy}: WithPolicyConnectionsP if (!policyID) { return; } - const vendor = enabled ? policy?.connections?.intacct?.data?.vendors?.[0].id : ''; + const vendor = enabled ? (policy?.connections?.intacct?.data?.vendors?.[0]?.id ?? '') : ''; updateSageIntacctDefaultVendor( policyID, CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR, diff --git a/src/pages/workspace/accounting/intacct/export/SageIntacctReimbursableExpensesPage.tsx b/src/pages/workspace/accounting/intacct/export/SageIntacctReimbursableExpensesPage.tsx index e9d613601c4a..974c9052d4a7 100644 --- a/src/pages/workspace/accounting/intacct/export/SageIntacctReimbursableExpensesPage.tsx +++ b/src/pages/workspace/accounting/intacct/export/SageIntacctReimbursableExpensesPage.tsx @@ -87,7 +87,7 @@ function SageIntacctReimbursableExpensesPage({policy}: WithPolicyConnectionsProp if (!policyID) { return; } - const vendor = enabled ? policy?.connections?.intacct?.data?.vendors?.[0].id : ''; + const vendor = enabled ? (policy?.connections?.intacct?.data?.vendors?.[0]?.id ?? '') : ''; updateSageIntacctDefaultVendor(policyID, CONST.SAGE_INTACCT_CONFIG.REIMBURSABLE_VENDOR, vendor ?? '', config?.export.reimbursableExpenseReportDefaultVendor); isAccordionExpanded.set(enabled); shouldAnimateAccordionSection.set(true); From 287c9727989cc5a7bda1ebdf3e87e647db5f4ed2 Mon Sep 17 00:00:00 2001 From: Vit Horacek Date: Mon, 6 Jul 2026 17:13:12 +0200 Subject: [PATCH 2/2] Remove empty-string default on Sage Intacct vendor ID Optional chaining on vendors[0]?.id already prevents the crash; no-default-id-values disallows ?? '' on string IDs. Co-authored-by: Cursor --- .../intacct/export/SageIntacctNonReimbursableExpensesPage.tsx | 2 +- .../intacct/export/SageIntacctReimbursableExpensesPage.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx index 0988c9a651ca..a6601bcbea94 100644 --- a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx +++ b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx @@ -105,7 +105,7 @@ function SageIntacctNonReimbursableExpensesPage({policy}: WithPolicyConnectionsP if (!policyID) { return; } - const vendor = enabled ? (policy?.connections?.intacct?.data?.vendors?.[0]?.id ?? '') : ''; + const vendor = enabled ? policy?.connections?.intacct?.data?.vendors?.[0]?.id : ''; updateSageIntacctDefaultVendor( policyID, CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR, diff --git a/src/pages/workspace/accounting/intacct/export/SageIntacctReimbursableExpensesPage.tsx b/src/pages/workspace/accounting/intacct/export/SageIntacctReimbursableExpensesPage.tsx index 974c9052d4a7..4bd57e1de66c 100644 --- a/src/pages/workspace/accounting/intacct/export/SageIntacctReimbursableExpensesPage.tsx +++ b/src/pages/workspace/accounting/intacct/export/SageIntacctReimbursableExpensesPage.tsx @@ -87,7 +87,7 @@ function SageIntacctReimbursableExpensesPage({policy}: WithPolicyConnectionsProp if (!policyID) { return; } - const vendor = enabled ? (policy?.connections?.intacct?.data?.vendors?.[0]?.id ?? '') : ''; + const vendor = enabled ? policy?.connections?.intacct?.data?.vendors?.[0]?.id : ''; updateSageIntacctDefaultVendor(policyID, CONST.SAGE_INTACCT_CONFIG.REIMBURSABLE_VENDOR, vendor ?? '', config?.export.reimbursableExpenseReportDefaultVendor); isAccordionExpanded.set(enabled); shouldAnimateAccordionSection.set(true);