Skip to content

Commit

Permalink
Merge pull request #55389 from daledah/fix/55238
Browse files Browse the repository at this point in the history
fix: Advanced page for "custom form ID" detail is not visible
  • Loading branch information
rafecolton authored Jan 22, 2025
2 parents eef098d + 2c20f6c commit 0190b0a
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
removeSageIntacctUserDimensions,
removeSageIntacctUserDimensionsByName,
} from '@libs/actions/connections/SageIntacct';
import * as ErrorUtils from '@libs/ErrorUtils';
import {addErrorMessage, getLatestErrorField} from '@libs/ErrorUtils';
import Navigation from '@libs/Navigation/Navigation';
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
Expand All @@ -39,7 +39,7 @@ function SageIntacctEditUserDimensionsPage({route}: SageIntacctEditUserDimension

const editedUserDimensionName: string = route.params.dimensionName;
const policy = usePolicy(route.params.policyID);
const policyID: string = policy?.id ?? '-1';
const policyID: string = policy?.id ?? `${CONST.DEFAULT_NUMBER_ID}`;
const config = policy?.connections?.intacct?.config;
const userDimensions = policy?.connections?.intacct?.config?.mappings?.dimensions;
const editedUserDimension = userDimensions?.find((userDimension) => userDimension.dimension === editedUserDimensionName);
Expand All @@ -50,15 +50,15 @@ function SageIntacctEditUserDimensionsPage({route}: SageIntacctEditUserDimension
const errors: FormInputErrors<typeof ONYXKEYS.FORMS.SAGE_INTACCT_DIMENSION_TYPE_FORM> = {};

if (!values[INPUT_IDS.INTEGRATION_NAME]) {
ErrorUtils.addErrorMessage(errors, INPUT_IDS.INTEGRATION_NAME, translate('common.error.fieldRequired'));
addErrorMessage(errors, INPUT_IDS.INTEGRATION_NAME, translate('common.error.fieldRequired'));
}

if (userDimensions?.some((userDimension) => userDimension.dimension === values[INPUT_IDS.INTEGRATION_NAME] && editedUserDimensionName !== values[INPUT_IDS.INTEGRATION_NAME])) {
ErrorUtils.addErrorMessage(errors, INPUT_IDS.INTEGRATION_NAME, translate('workspace.intacct.dimensionExists'));
addErrorMessage(errors, INPUT_IDS.INTEGRATION_NAME, translate('workspace.intacct.dimensionExists'));
}

if (!values[INPUT_IDS.DIMENSION_TYPE]) {
ErrorUtils.addErrorMessage(errors, INPUT_IDS.DIMENSION_TYPE, translate('common.error.fieldRequired'));
addErrorMessage(errors, INPUT_IDS.DIMENSION_TYPE, translate('common.error.fieldRequired'));
}
return errors;
},
Expand All @@ -74,6 +74,7 @@ function SageIntacctEditUserDimensionsPage({route}: SageIntacctEditUserDimension
featureName={CONST.POLICY.MORE_FEATURES.ARE_CONNECTIONS_ENABLED}
contentContainerStyle={styles.flex1}
shouldUseScrollView={false}
shouldIncludeSafeAreaPaddingBottom
titleStyle={styles.ph5}
connectionName={CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}
onBackButtonPress={() => Navigation.goBack(ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_USER_DIMENSIONS.getRoute(policyID))}
Expand All @@ -93,7 +94,7 @@ function SageIntacctEditUserDimensionsPage({route}: SageIntacctEditUserDimension
>
<OfflineWithFeedback
pendingAction={settingsPendingAction([`${CONST.SAGE_INTACCT_CONFIG.DIMENSION_PREFIX}${editedUserDimensionName}`], config?.pendingFields)}
errors={ErrorUtils.getLatestErrorField(config ?? {}, `${CONST.SAGE_INTACCT_CONFIG.DIMENSION_PREFIX}${editedUserDimensionName}`)}
errors={getLatestErrorField(config ?? {}, `${CONST.SAGE_INTACCT_CONFIG.DIMENSION_PREFIX}${editedUserDimensionName}`)}
errorRowStyles={[styles.pb3]}
onClose={() => {
clearSageIntacctErrorField(policyID, `${CONST.SAGE_INTACCT_CONFIG.DIMENSION_PREFIX}${editedUserDimensionName}`);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,15 @@ import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
import OfflineWithFeedback from '@components/OfflineWithFeedback';
import useLocalize from '@hooks/useLocalize';
import useThemeStyles from '@hooks/useThemeStyles';
import * as Connections from '@libs/actions/connections/NetSuiteCommands';
import * as ErrorUtils from '@libs/ErrorUtils';
import {
updateNetSuiteAutoCreateEntities,
updateNetSuiteCustomFormIDOptionsEnabled,
updateNetSuiteEnableNewCategories,
updateNetSuiteSyncPeople,
updateNetSuiteSyncReimbursedReports,
} from '@libs/actions/connections/NetSuiteCommands';
import {clearNetSuiteErrorField} from '@libs/actions/Policy/Policy';
import {getLatestErrorField} from '@libs/ErrorUtils';
import Navigation from '@libs/Navigation/Navigation';
import {
areSettingsInErrorFields,
Expand All @@ -28,7 +35,6 @@ import {
import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections';
import withPolicyConnections from '@pages/workspace/withPolicyConnections';
import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow';
import * as Policy from '@userActions/Policy/Policy';
import CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
import ROUTES from '@src/ROUTES';
Expand All @@ -38,7 +44,7 @@ type MenuItemWithSubscribedSettings = Pick<MenuItem, 'type' | 'description' | 't
function NetSuiteAdvancedPage({policy}: WithPolicyConnectionsProps) {
const {translate} = useLocalize();
const styles = useThemeStyles();
const policyID = policy?.id ?? '-1';
const policyID = policy?.id ?? `${CONST.DEFAULT_NUMBER_ID}`;

const config = policy?.connections?.netsuite?.options?.config;
const autoSyncConfig = policy?.connections?.netsuite?.config;
Expand Down Expand Up @@ -90,10 +96,10 @@ function NetSuiteAdvancedPage({policy}: WithPolicyConnectionsProps) {
isActive: !!config?.syncOptions.syncReimbursedReports,
switchAccessibilityLabel: translate('workspace.netsuite.advancedConfig.reimbursedReportsDescription'),
shouldPlaceSubtitleBelowSwitch: true,
onCloseError: () => Policy.clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_REIMBURSED_REPORTS),
onToggle: (isEnabled) => Connections.updateNetSuiteSyncReimbursedReports(policyID, isEnabled),
onCloseError: () => clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_REIMBURSED_REPORTS),
onToggle: (isEnabled) => updateNetSuiteSyncReimbursedReports(policyID, isEnabled),
pendingAction: settingsPendingAction([CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_REIMBURSED_REPORTS], config?.pendingFields),
errors: ErrorUtils.getLatestErrorField(config, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_REIMBURSED_REPORTS),
errors: getLatestErrorField(config, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_REIMBURSED_REPORTS),
shouldHide: shouldHideReimbursedReportsSection(config),
},
{
Expand Down Expand Up @@ -125,20 +131,20 @@ function NetSuiteAdvancedPage({policy}: WithPolicyConnectionsProps) {
switchAccessibilityLabel: translate('workspace.netsuite.advancedConfig.inviteEmployeesDescription'),
shouldPlaceSubtitleBelowSwitch: true,
shouldParseSubtitle: true,
onCloseError: () => Policy.clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_PEOPLE),
onToggle: (isEnabled) => Connections.updateNetSuiteSyncPeople(policyID, isEnabled),
onCloseError: () => clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_PEOPLE),
onToggle: (isEnabled) => updateNetSuiteSyncPeople(policyID, isEnabled),
pendingAction: settingsPendingAction([CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_PEOPLE], config?.pendingFields),
errors: ErrorUtils.getLatestErrorField(config, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_PEOPLE),
errors: getLatestErrorField(config, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.SYNC_PEOPLE),
},
{
type: 'toggle',
title: translate('workspace.netsuite.advancedConfig.autoCreateEntities'),
isActive: !!config?.autoCreateEntities,
switchAccessibilityLabel: translate('workspace.netsuite.advancedConfig.autoCreateEntities'),
onCloseError: () => Policy.clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.AUTO_CREATE_ENTITIES),
onToggle: (isEnabled) => Connections.updateNetSuiteAutoCreateEntities(policyID, isEnabled),
onCloseError: () => clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.AUTO_CREATE_ENTITIES),
onToggle: (isEnabled) => updateNetSuiteAutoCreateEntities(policyID, isEnabled),
pendingAction: settingsPendingAction([CONST.NETSUITE_CONFIG.AUTO_CREATE_ENTITIES], config?.pendingFields),
errors: ErrorUtils.getLatestErrorField(config, CONST.NETSUITE_CONFIG.AUTO_CREATE_ENTITIES),
errors: getLatestErrorField(config, CONST.NETSUITE_CONFIG.AUTO_CREATE_ENTITIES),
},
{
type: 'divider',
Expand All @@ -149,10 +155,10 @@ function NetSuiteAdvancedPage({policy}: WithPolicyConnectionsProps) {
title: translate('workspace.netsuite.advancedConfig.enableCategories'),
isActive: !!config?.syncOptions.enableNewCategories,
switchAccessibilityLabel: translate('workspace.netsuite.advancedConfig.enableCategories'),
onCloseError: () => Policy.clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.ENABLE_NEW_CATEGORIES),
onToggle: (isEnabled) => Connections.updateNetSuiteEnableNewCategories(policyID, isEnabled),
onCloseError: () => clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.ENABLE_NEW_CATEGORIES),
onToggle: (isEnabled) => updateNetSuiteEnableNewCategories(policyID, isEnabled),
pendingAction: settingsPendingAction([CONST.NETSUITE_CONFIG.SYNC_OPTIONS.ENABLE_NEW_CATEGORIES], config?.pendingFields),
errors: ErrorUtils.getLatestErrorField(config, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.ENABLE_NEW_CATEGORIES),
errors: getLatestErrorField(config, CONST.NETSUITE_CONFIG.SYNC_OPTIONS.ENABLE_NEW_CATEGORIES),
},
{
type: 'divider',
Expand Down Expand Up @@ -200,10 +206,10 @@ function NetSuiteAdvancedPage({policy}: WithPolicyConnectionsProps) {
isActive: !!config?.customFormIDOptions?.enabled,
switchAccessibilityLabel: translate('workspace.netsuite.advancedConfig.customFormIDDescription'),
shouldPlaceSubtitleBelowSwitch: true,
onCloseError: () => Policy.clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.CUSTOM_FORM_ID_ENABLED),
onToggle: (isEnabled) => Connections.updateNetSuiteCustomFormIDOptionsEnabled(policyID, isEnabled),
onCloseError: () => clearNetSuiteErrorField(policyID, CONST.NETSUITE_CONFIG.CUSTOM_FORM_ID_ENABLED),
onToggle: (isEnabled) => updateNetSuiteCustomFormIDOptionsEnabled(policyID, isEnabled),
pendingAction: settingsPendingAction([CONST.NETSUITE_CONFIG.CUSTOM_FORM_ID_ENABLED], config?.pendingFields),
errors: ErrorUtils.getLatestErrorField(config, CONST.NETSUITE_CONFIG.CUSTOM_FORM_ID_ENABLED),
errors: getLatestErrorField(config, CONST.NETSUITE_CONFIG.CUSTOM_FORM_ID_ENABLED),
},
{
type: 'menuitem',
Expand All @@ -225,6 +231,7 @@ function NetSuiteAdvancedPage({policy}: WithPolicyConnectionsProps) {

return (
<ConnectionLayout
shouldIncludeSafeAreaPaddingBottom
displayName={NetSuiteAdvancedPage.displayName}
headerTitle="workspace.accounting.advanced"
headerSubtitle={config?.subsidiary ?? ''}
Expand Down

0 comments on commit 0190b0a

Please sign in to comment.