From 413dd0d28f5f06c848eed0a5f283e44d1997be6d Mon Sep 17 00:00:00 2001 From: neil-marcellini Date: Fri, 31 Mar 2023 15:34:26 +0000 Subject: [PATCH] Remove undefined logins to prevent crash --- src/libs/OptionsListUtils.js | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/libs/OptionsListUtils.js b/src/libs/OptionsListUtils.js index 31402a0fd740..de4f66c0232a 100644 --- a/src/libs/OptionsListUtils.js +++ b/src/libs/OptionsListUtils.js @@ -103,22 +103,26 @@ function getPersonalDetailsForLogins(logins, personalDetails) { if (!personalDetails) { return personalDetailsForLogins; } - _.each(logins, (login) => { - let personalDetail = personalDetails[login]; - if (!personalDetail) { - personalDetail = { - login, - displayName: Str.removeSMSDomain(login), - avatar: ReportUtils.getDefaultAvatar(login), - }; - } + _.chain(logins) + + // Somehow it's possible for the logins coming from report.participants to contain undefined values so we use compact to remove them. + .compact() + .each(logins, (login) => { + let personalDetail = personalDetails[login]; + if (!personalDetail) { + personalDetail = { + login, + displayName: Str.removeSMSDomain(login), + avatar: ReportUtils.getDefaultAvatar(login), + }; + } - if (login === CONST.EMAIL.CONCIERGE) { - personalDetail.avatar = CONST.CONCIERGE_ICON_URL; - } + if (login === CONST.EMAIL.CONCIERGE) { + personalDetail.avatar = CONST.CONCIERGE_ICON_URL; + } - personalDetailsForLogins[login] = personalDetail; - }); + personalDetailsForLogins[login] = personalDetail; + }); return personalDetailsForLogins; }