From 6aa9f068b3bd3414ea47544585d465e19a90a408 Mon Sep 17 00:00:00 2001 From: YaoiFangirl420 <48789208+YaoiFangirl420@users.noreply.github.com> Date: Sat, 6 Apr 2019 20:44:22 -0700 Subject: [PATCH] Tighten controls code in MessageComposer Make the user avatar a separate function component, make the logic for laying out components a little more concise Signed-off-by: YaoiFangirl420 <48789208+YaoiFangirl420@users.noreply.github.com> --- src/components/views/rooms/MessageComposer.js | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js index 5c9ef3f15f..089fbc13f4 100644 --- a/src/components/views/rooms/MessageComposer.js +++ b/src/components/views/rooms/MessageComposer.js @@ -42,6 +42,17 @@ const formatButtonList = [ _td("numbered-list"), ]; +function Avatar(props) { + const MemberStatusMessageAvatar = sdk.getComponent('avatars.MemberStatusMessageAvatar'); + return <div className="mx_MessageComposer_avatar"> + <MemberStatusMessageAvatar member={props.me} width={24} height={24} /> + </div>; +} + +Avatar.propTypes = { + me: PropTypes.object.isRequired, +} + function CallButton(props) { const AccessibleButton = sdk.getComponent('elements.AccessibleButton'); const onVoiceCallClick = (ev) => { @@ -280,26 +291,12 @@ export default class MessageComposer extends React.Component { render() { const uploadInputStyle = {display: 'none'}; - const MemberStatusMessageAvatar = sdk.getComponent('avatars.MemberStatusMessageAvatar'); const MessageComposerInput = sdk.getComponent("rooms.MessageComposerInput"); - const controls = []; - - if (this.state.me) { - controls.push( - <div key="controls_avatar" className="mx_MessageComposer_avatar"> - <MemberStatusMessageAvatar member={this.state.me} width={24} height={24} /> - </div>, - ); - } - - if (this.props.e2eStatus) { - controls.push(<E2EIcon - status={this.props.e2eStatus} - key="e2eIcon" - className="mx_MessageComposer_e2eIcon" /> - ); - } + const controls = [ + this.state.me ? <Avatar key="controls_avatar" me={this.state.me} /> : null, + this.props.e2eStatus ? <E2EIcon key="e2eIcon" status={this.props.e2eStatus} className="mx_MessageComposer_e2eIcon" /> : null, + ]; let callButton; let videoCallButton;