From 817f1d482f088fd2e338881e1a344ce5e8f56ece Mon Sep 17 00:00:00 2001
From: YaoiFangirl420 <48789208+YaoiFangirl420@users.noreply.github.com>
Date: Sat, 6 Apr 2019 21:43:15 -0700
Subject: [PATCH] Move format bar rendering to separate method
To reduce the complexity in render(), move the format bar rendering to a
separate method
Signed-off-by: YaoiFangirl420 <48789208+YaoiFangirl420@users.noreply.github.com>
---
src/components/views/rooms/MessageComposer.js | 81 ++++++++++---------
1 file changed, 44 insertions(+), 37 deletions(-)
diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js
index 689b549bc3..3c7a5b077b 100644
--- a/src/components/views/rooms/MessageComposer.js
+++ b/src/components/views/rooms/MessageComposer.js
@@ -186,6 +186,7 @@ export default class MessageComposer extends React.Component {
this._onRoomViewStoreUpdate = this._onRoomViewStoreUpdate.bind(this);
this._onTombstoneClick = this._onTombstoneClick.bind(this);
this.renderPlaceholderText = this.renderPlaceholderText.bind(this);
+ this.renderFormatBar = this.renderFormatBar.bind(this);
this.state = {
inputState: {
@@ -331,6 +332,47 @@ export default class MessageComposer extends React.Component {
}
}
+ renderFormatBar() {
+ const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
+ const {marks, blockType} = this.state.inputState;
+ const formatButtons = formatButtonList.map((name) => {
+ // special-case to match the md serializer and the special-case in MessageComposerInput.js
+ const markName = name === 'inline-code' ? 'code' : name;
+ const active = marks.some(mark => mark.type === markName) || blockType === name;
+ const suffix = active ? '-on' : '';
+ const onFormatButtonClicked = this.onFormatButtonClicked.bind(this, name);
+ const className = 'mx_MessageComposer_format_button mx_filterFlipColor';
+ return (
+
+ );
+ })
+
+ return (
+