From 0d743bb286b65bbab065ea166e3cdbec711ff307 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Thu, 1 Jun 2023 12:40:33 -0400 Subject: [PATCH] conditionally set the current user status (#7383) --- 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});