@@ -130,7 +130,17 @@ const SALESFORCE_EXPENSES_URL_PREFIX = 'https://login.salesforce.com/';
130130 */
131131const QBO_EXPENSES_URL = 'https://qbo.intuit.com/app/expenses' ;
132132
133- const POLICY_CHANGE_LOG_ARRAY = Object . values ( CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG ) ;
133+ const POLICY_CHANGE_LOG_ARRAY = new Set < ReportActionName > ( Object . values ( CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG ) ) ;
134+
135+ const ROOM_CHANGE_LOG_ARRAY = new Set < ReportActionName > ( Object . values ( CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG ) ) ;
136+
137+ const MEMBER_CHANGE_ARRAY = new Set < ReportActionName > ( [
138+ CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . INVITE_TO_ROOM ,
139+ CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . REMOVE_FROM_ROOM ,
140+ CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . INVITE_TO_ROOM ,
141+ CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . REMOVE_FROM_ROOM ,
142+ CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . LEAVE_POLICY ,
143+ ] ) ;
134144
135145function isCreatedAction ( reportAction : OnyxInputOrEntry < ReportAction > ) : boolean {
136146 return reportAction ?. actionName === CONST . REPORT . ACTIONS . TYPE . CREATED ;
@@ -221,7 +231,7 @@ function isModifiedExpenseAction(reportAction: OnyxInputOrEntry<ReportAction>):
221231}
222232
223233function isPolicyChangeLogAction ( reportAction : OnyxInputOrEntry < ReportAction > ) : reportAction is ReportAction < ValueOf < typeof CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG > > {
224- return isActionOfType ( reportAction , ... POLICY_CHANGE_LOG_ARRAY ) ;
234+ return reportAction ?. actionName ? POLICY_CHANGE_LOG_ARRAY . has ( reportAction . actionName ) : false ;
225235}
226236
227237function isChronosOOOListAction ( reportAction : OnyxInputOrEntry < ReportAction > ) : reportAction is ReportAction < typeof CONST . REPORT . ACTIONS . TYPE . CHRONOS_OOO_LIST > {
@@ -240,22 +250,8 @@ function isTripPreview(reportAction: OnyxInputOrEntry<ReportAction>): reportActi
240250 return isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . TRIP_PREVIEW ) ;
241251}
242252
243- function isActionOfType < T extends ReportActionName [ ] > (
244- action : OnyxInputOrEntry < ReportAction > ,
245- ...actionNames : T
246- ) : action is {
247- [ K in keyof T ] : ReportAction < T [ K ] > ;
248- } [ number ] {
249- const actionName = action ?. actionName as T [ number ] ;
250-
251- // This is purely a performance optimization to limit the 'includes()' calls on Hermes
252- for ( const i of actionNames ) {
253- if ( i === actionName ) {
254- return true ;
255- }
256- }
257-
258- return false ;
253+ function isActionOfType < T extends ReportActionName > ( action : OnyxInputOrEntry < ReportAction > , actionName : T ) : action is ReportAction < T > {
254+ return action ?. actionName === actionName ;
259255}
260256
261257function getOriginalMessage < T extends ReportActionName > ( reportAction : OnyxInputOrEntry < ReportAction < T > > ) : OriginalMessage < T > | undefined {
@@ -333,20 +329,13 @@ function isReimbursementQueuedAction(reportAction: OnyxInputOrEntry<ReportAction
333329function isMemberChangeAction (
334330 reportAction : OnyxInputOrEntry < ReportAction > ,
335331) : reportAction is ReportAction < ValueOf < typeof CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG | typeof CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG > > {
336- return isActionOfType (
337- reportAction ,
338- CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . INVITE_TO_ROOM ,
339- CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . REMOVE_FROM_ROOM ,
340- CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . INVITE_TO_ROOM ,
341- CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . REMOVE_FROM_ROOM ,
342- CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . LEAVE_POLICY ,
343- ) ;
332+ return reportAction ?. actionName ? MEMBER_CHANGE_ARRAY . has ( reportAction . actionName ) : false ;
344333}
345334
346335function isInviteMemberAction (
347336 reportAction : OnyxEntry < ReportAction > ,
348337) : reportAction is ReportAction < typeof CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . INVITE_TO_ROOM | typeof CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . INVITE_TO_ROOM > {
349- return isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . INVITE_TO_ROOM , CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . INVITE_TO_ROOM ) ;
338+ return isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . INVITE_TO_ROOM ) || isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . INVITE_TO_ROOM ) ;
350339}
351340
352341function isLeavePolicyAction ( reportAction : OnyxEntry < ReportAction > ) : reportAction is ReportAction < typeof CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . LEAVE_POLICY > {
@@ -380,18 +369,17 @@ function isReopenedAction(reportAction: OnyxEntry<ReportAction>): reportAction i
380369}
381370
382371function isRoomChangeLogAction ( reportAction : OnyxEntry < ReportAction > ) : reportAction is ReportAction < ValueOf < typeof CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG > > {
383- return isActionOfType ( reportAction , ... Object . values ( CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG ) ) ;
372+ return reportAction ?. actionName ? ROOM_CHANGE_LOG_ARRAY . has ( reportAction . actionName ) : false ;
384373}
385374
386375function isInviteOrRemovedAction (
387376 reportAction : OnyxInputOrEntry < ReportAction > ,
388377) : reportAction is ReportAction < ValueOf < typeof CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG | typeof CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG > > {
389- return isActionOfType (
390- reportAction ,
391- CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . INVITE_TO_ROOM ,
392- CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . REMOVE_FROM_ROOM ,
393- CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . INVITE_TO_ROOM ,
394- CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . REMOVE_FROM_ROOM ,
378+ return (
379+ isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . INVITE_TO_ROOM ) ||
380+ isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . ROOM_CHANGE_LOG . REMOVE_FROM_ROOM ) ||
381+ isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . INVITE_TO_ROOM ) ||
382+ isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . POLICY_CHANGE_LOG . REMOVE_FROM_ROOM )
395383 ) ;
396384}
397385
@@ -2795,13 +2783,19 @@ function getUpdatedManualApprovalThresholdMessage(reportAction: OnyxEntry<Report
27952783 return translateLocal ( 'workspaceActions.updatedManualApprovalThreshold' , { oldLimit : convertToDisplayString ( oldLimit , currency ) , newLimit : convertToDisplayString ( newLimit , currency ) } ) ;
27962784}
27972785
2798- function isCardIssuedAction ( reportAction : OnyxEntry < ReportAction > ) {
2799- return isActionOfType (
2800- reportAction ,
2801- CONST . REPORT . ACTIONS . TYPE . CARD_ISSUED ,
2802- CONST . REPORT . ACTIONS . TYPE . CARD_ISSUED_VIRTUAL ,
2803- CONST . REPORT . ACTIONS . TYPE . CARD_MISSING_ADDRESS ,
2804- CONST . REPORT . ACTIONS . TYPE . CARD_ASSIGNED ,
2786+ function isCardIssuedAction (
2787+ reportAction : OnyxEntry < ReportAction > ,
2788+ ) : reportAction is ReportAction <
2789+ | typeof CONST . REPORT . ACTIONS . TYPE . CARD_ISSUED
2790+ | typeof CONST . REPORT . ACTIONS . TYPE . CARD_ISSUED_VIRTUAL
2791+ | typeof CONST . REPORT . ACTIONS . TYPE . CARD_MISSING_ADDRESS
2792+ | typeof CONST . REPORT . ACTIONS . TYPE . CARD_ASSIGNED
2793+ > {
2794+ return (
2795+ isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . CARD_ISSUED ) ||
2796+ isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . CARD_ISSUED_VIRTUAL ) ||
2797+ isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . CARD_MISSING_ADDRESS ) ||
2798+ isActionOfType ( reportAction , CONST . REPORT . ACTIONS . TYPE . CARD_ASSIGNED )
28052799 ) ;
28062800}
28072801
@@ -2837,15 +2831,7 @@ function getCardIssuedMessage({
28372831 policyID ?: string ;
28382832 card ?: Card ;
28392833} ) {
2840- const cardIssuedActionOriginalMessage = isActionOfType (
2841- reportAction ,
2842- CONST . REPORT . ACTIONS . TYPE . CARD_ISSUED ,
2843- CONST . REPORT . ACTIONS . TYPE . CARD_ISSUED_VIRTUAL ,
2844- CONST . REPORT . ACTIONS . TYPE . CARD_ASSIGNED ,
2845- CONST . REPORT . ACTIONS . TYPE . CARD_MISSING_ADDRESS ,
2846- )
2847- ? getOriginalMessage ( reportAction )
2848- : undefined ;
2834+ const cardIssuedActionOriginalMessage = isCardIssuedAction ( reportAction ) ? getOriginalMessage ( reportAction ) : undefined ;
28492835
28502836 const assigneeAccountID = cardIssuedActionOriginalMessage ?. assigneeAccountID ?? CONST . DEFAULT_NUMBER_ID ;
28512837 const cardID = cardIssuedActionOriginalMessage ?. cardID ?? CONST . DEFAULT_NUMBER_ID ;
0 commit comments