Skip to content

Commit af9fa57

Browse files
committed
use getConnectedHRProvider
1 parent b20e57c commit af9fa57

3 files changed

Lines changed: 9 additions & 10 deletions

File tree

src/libs/PolicyUtils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import type {LocaleContextProps, LocalizedTranslate} from '@components/LocaleCon
55
import type {SelectorType} from '@components/SelectionScreen';
66
import CONST from '@src/CONST';
77
import MERGE_HR_PROVIDERS from '@src/CONST/MERGE_HR_PROVIDERS';
8+
import type {MergeHRProviderSlug} from '@src/CONST/MERGE_HR_PROVIDERS';
89
import ONYXKEYS from '@src/ONYXKEYS';
910
import ROUTES from '@src/ROUTES';
1011
import INPUT_IDS from '@src/types/form/NetSuiteCustomFieldForm';
@@ -73,6 +74,9 @@ type HRProviderInfo = {
7374

7475
/** Optional logo URL. Populated only for Merge HR providers when their slug resolves in `MERGE_HR_PROVIDERS`. */
7576
iconUrl?: string;
77+
78+
/** Merge HR integration slug (e.g. `'bamboohr'`, `'workday'`). Only set when `connectionName` is Merge HR. */
79+
mergeSlug?: MergeHRProviderSlug;
7680
};
7781

7882
type WorkspaceDetails = {
@@ -1917,6 +1921,7 @@ function getConnectedHRProvider(policy?: OnyxEntry<Policy>): HRProviderInfo | nu
19171921
connectionName: CONST.POLICY.CONNECTIONS.NAME.MERGE_HR,
19181922
displayName: providerInfo?.displayName ?? CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY.merge_hris,
19191923
iconUrl: providerInfo?.iconUrl ?? undefined,
1924+
mergeSlug: slug,
19201925
};
19211926
}
19221927
return null;

src/pages/workspace/hr/utils.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type {LocaleContextProps} from '@components/LocaleContextProvider';
33
import {hasSynchronizationErrorMessage, isConnectionInProgress} from '@libs/actions/connections';
44
import {getDisplayNameOrDefault, getPersonalDetailByEmail} from '@libs/PersonalDetailsUtils';
55
import type {HRConnectionName} from '@libs/PolicyUtils';
6-
import {getHRApprovalMode, getIntegrationLastSuccessfulDate, isGustoConnected, isMergeHRConnected, isZenefitsConnected} from '@libs/PolicyUtils';
6+
import {getConnectedHRProvider, getHRApprovalMode, getIntegrationLastSuccessfulDate} from '@libs/PolicyUtils';
77
import CONST from '@src/CONST';
88
import MERGE_HR_PROVIDERS from '@src/CONST/MERGE_HR_PROVIDERS';
99
import type {MergeHRProviderSlug} from '@src/CONST/MERGE_HR_PROVIDERS';
@@ -84,15 +84,8 @@ type GetHRCardStateParams = {
8484
function getHRCardState({policy, connectionName, connectionSyncProgress, getLocalDateFromDatetime, mergeSlug}: GetHRCardStateParams) {
8585
const isSyncInProgress = connectionSyncProgress?.connectionName === connectionName && isConnectionInProgress(connectionSyncProgress, policy);
8686

87-
let isConnected = false;
88-
if (connectionName === CONST.POLICY.CONNECTIONS.NAME.GUSTO) {
89-
isConnected = isGustoConnected(policy);
90-
} else if (connectionName === CONST.POLICY.CONNECTIONS.NAME.ZENEFITS) {
91-
isConnected = isZenefitsConnected(policy);
92-
} else if (connectionName === CONST.POLICY.CONNECTIONS.NAME.MERGE_HR) {
93-
const mergeConnection = policy?.connections?.merge_hris;
94-
isConnected = isMergeHRConnected(policy) && (!mergeSlug || mergeConnection?.config?.integration === mergeSlug);
95-
}
87+
const connectedProvider = getConnectedHRProvider(policy);
88+
const isConnected = connectedProvider?.connectionName === connectionName && (!mergeSlug || connectedProvider.mergeSlug === mergeSlug);
9689

9790
const connection = policy?.connections?.[connectionName];
9891
const syncProgress = connectionSyncProgress?.connectionName === connectionName ? connectionSyncProgress : undefined;

tests/unit/PolicyUtilsTest.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2761,6 +2761,7 @@ describe('PolicyUtils', () => {
27612761
const provider = getConnectedHRProvider(policy);
27622762
expect(provider?.connectionName).toBe(CONST.POLICY.CONNECTIONS.NAME.MERGE_HR);
27632763
expect(provider?.displayName).toBe('Workday');
2764+
expect(provider?.mergeSlug).toBe('workday');
27642765
});
27652766
});
27662767

0 commit comments

Comments
 (0)