From 4a0b7ffc8b32fbbfa22eb428a943ae913ab2f1eb Mon Sep 17 00:00:00 2001 From: Reinaldo Neto Date: Wed, 5 Jan 2022 13:39:15 -0300 Subject: [PATCH 1/2] [FIX] RoomInfoView displaying different info depending on the origin --- app/views/RoomInfoView/index.js | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/app/views/RoomInfoView/index.js b/app/views/RoomInfoView/index.js index a270836138d..0f05de5bc2d 100644 --- a/app/views/RoomInfoView/index.js +++ b/app/views/RoomInfoView/index.js @@ -178,6 +178,14 @@ class RoomInfoView extends React.Component { } }; + parseRoles = roleArray => + Promise.all( + roleArray.map(async role => { + const description = await this.getRoleDescription(role); + return description; + }) + ); + loadUser = async () => { const { room, roomUser } = this.state; @@ -189,12 +197,7 @@ class RoomInfoView extends React.Component { const { user } = result; const { roles } = user; if (roles && roles.length) { - user.parsedRoles = await Promise.all( - roles.map(async role => { - const description = await this.getRoleDescription(role); - return description; - }) - ); + user.parsedRoles = await this.parseRoles(roles); } this.setState({ roomUser: user }); @@ -202,6 +205,17 @@ class RoomInfoView extends React.Component { } catch { // do nothing } + } else { + try { + const { roles } = roomUser; + if (roles && roles.length) { + roomUser.parsedRoles = await this.parseRoles(roles); + } + + this.setState({ roomUser }); + } catch (e) { + // do nothing + } } }; From 8d43769edfa9b31c523a12b4a4f4eb160c13de09 Mon Sep 17 00:00:00 2001 From: GleidsonDaniel Date: Fri, 7 Jan 2022 11:35:42 -0300 Subject: [PATCH 2/2] fix: fix setState logic because side-effects --- app/views/RoomInfoView/index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/RoomInfoView/index.js b/app/views/RoomInfoView/index.js index 0f05de5bc2d..53c2c7d5ae8 100644 --- a/app/views/RoomInfoView/index.js +++ b/app/views/RoomInfoView/index.js @@ -209,10 +209,11 @@ class RoomInfoView extends React.Component { try { const { roles } = roomUser; if (roles && roles.length) { - roomUser.parsedRoles = await this.parseRoles(roles); + const parsedRoles = await this.parseRoles(roles); + this.setState({ roomUser: { ...roomUser, parsedRoles } }); + } else { + this.setState({ roomUser }); } - - this.setState({ roomUser }); } catch (e) { // do nothing }