From 43b02f2a1ee22f3268f9b008618c556275808282 Mon Sep 17 00:00:00 2001 From: Mattermost Build Date: Fri, 2 Jun 2023 17:41:17 +0300 Subject: [PATCH] conditionally set the current user status (#7383) (#7384) (cherry picked from commit 0d743bb286b65bbab065ea166e3cdbec711ff307) Co-authored-by: Elias Nahum --- app/actions/remote/user.ts | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/app/actions/remote/user.ts b/app/actions/remote/user.ts index ea6db0e7a..184ee6d31 100644 --- a/app/actions/remote/user.ts +++ b/app/actions/remote/user.ts @@ -48,12 +48,25 @@ export const fetchMe = async (serverUrl: string, fetchOnly = false): Promise, Promise]>([ - client.getMe(), - client.getStatus('me'), - ]); + const resultSettled = await Promise.allSettled([client.getMe(), client.getStatus('me')]); + let user: UserProfile|undefined; + let userStatus: UserStatus|undefined; + for (const result of resultSettled) { + if (result.status === 'fulfilled') { + const {value} = result; + if ('email' in value) { + user = value; + } else { + userStatus = value; + } + } + } - user.status = userStatus.status; + if (!user) { + throw new Error('User not found'); + } + + user.status = userStatus?.status; if (!fetchOnly) { await operator.handleUsers({users: [user], prepareRecordsOnly: false});