From 51b4f5f4516ed863195ff9d6b8395d7b4016d17e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Francisco=20Siebel?= <jfsiebel@gmail.com> Date: Mon, 17 Dec 2018 09:48:34 -0200 Subject: [PATCH] WIP change components to PureComponents and add memo --- .../ui/components/chat/alert/component.jsx | 4 ++-- .../ui/components/chat/alert/container.jsx | 4 ++-- .../chat/alert/push-alert/component.jsx | 4 ++-- .../chat/chat-dropdown/component.jsx | 4 ++-- .../imports/ui/components/chat/component.jsx | 4 ++-- .../imports/ui/components/chat/container.jsx | 5 ++-- .../chat/message-form/component.jsx | 4 ++-- .../message-form-actions/component.jsx | 23 ------------------- .../message-form-actions/styles.scss | 1 - .../message-list-item/message/component.jsx | 4 ++-- 10 files changed, 17 insertions(+), 40 deletions(-) delete mode 100644 bigbluebutton-html5/imports/ui/components/chat/message-form/message-form-actions/component.jsx delete mode 100644 bigbluebutton-html5/imports/ui/components/chat/message-form/message-form-actions/styles.scss diff --git a/bigbluebutton-html5/imports/ui/components/chat/alert/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/alert/component.jsx index 923f1b97d5..2c9408a392 100755 --- a/bigbluebutton-html5/imports/ui/components/chat/alert/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/alert/component.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl } from 'react-intl'; import { Session } from 'meteor/session'; @@ -37,7 +37,7 @@ const intlMessages = defineMessages({ const PUBLIC_KEY = 'public'; const PRIVATE_KEY = 'private'; -class ChatAlert extends Component { +class ChatAlert extends PureComponent { constructor(props) { super(props); this.state = { diff --git a/bigbluebutton-html5/imports/ui/components/chat/alert/container.jsx b/bigbluebutton-html5/imports/ui/components/chat/alert/container.jsx index b0bee3dd6b..bddf44f912 100755 --- a/bigbluebutton-html5/imports/ui/components/chat/alert/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/alert/container.jsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { memo } from 'react'; import { withTracker } from 'meteor/react-meteor-data'; import UserListService from '/imports/ui/components/user-list/service'; import Settings from '/imports/ui/services/settings'; @@ -18,4 +18,4 @@ export default withTracker(() => { openChats, publicUserId: Meteor.settings.public.chat.public_group_id, }; -})(ChatAlertContainer); +})(memo(ChatAlertContainer)); diff --git a/bigbluebutton-html5/imports/ui/components/chat/alert/push-alert/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/alert/push-alert/component.jsx index 6cae1188ed..ba73f249ff 100755 --- a/bigbluebutton-html5/imports/ui/components/chat/alert/push-alert/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/alert/push-alert/component.jsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import _ from 'lodash'; import injectNotify from '/imports/ui/components/toast/inject-notify/component'; @@ -15,7 +15,7 @@ const propTypes = { content: PropTypes.node.isRequired, }; -class ChatPushAlert extends React.Component { +class ChatPushAlert extends PureComponent { static link(message, chatId) { return ( <div diff --git a/bigbluebutton-html5/imports/ui/components/chat/chat-dropdown/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/chat-dropdown/component.jsx index 48433e1782..f4be63330d 100644 --- a/bigbluebutton-html5/imports/ui/components/chat/chat-dropdown/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/chat-dropdown/component.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { PureComponent } from 'react'; import { defineMessages, injectIntl } from 'react-intl'; import { withModalMounter } from '/imports/ui/components/modal/service'; import Clipboard from 'clipboard'; @@ -33,7 +33,7 @@ const intlMessages = defineMessages({ }, }); -class ChatDropdown extends Component { +class ChatDropdown extends PureComponent { constructor(props) { super(props); diff --git a/bigbluebutton-html5/imports/ui/components/chat/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/component.jsx index 7c6faba8da..03c00b88a9 100644 --- a/bigbluebutton-html5/imports/ui/components/chat/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/component.jsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { memo } from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl } from 'react-intl'; import injectWbResizeEvent from '/imports/ui/components/presentation/resize-wrapper/component'; @@ -109,7 +109,7 @@ const Chat = (props) => { ); }; -export default withShortcutHelper(injectWbResizeEvent(injectIntl(Chat)), ['hidePrivateChat', 'closePrivateChat']); +export default withShortcutHelper(injectWbResizeEvent(injectIntl(memo(Chat))), ['hidePrivateChat', 'closePrivateChat']); const propTypes = { chatID: PropTypes.string.isRequired, diff --git a/bigbluebutton-html5/imports/ui/components/chat/container.jsx b/bigbluebutton-html5/imports/ui/components/chat/container.jsx index be1314c06f..349a27780a 100644 --- a/bigbluebutton-html5/imports/ui/components/chat/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/container.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { PureComponent } from 'react'; import { defineMessages, injectIntl } from 'react-intl'; import { withTracker } from 'meteor/react-meteor-data'; import { Session } from 'meteor/session'; @@ -29,11 +29,12 @@ const intlMessages = defineMessages({ }, }); -class ChatContainer extends Component { +class ChatContainer extends PureComponent { componentDidMount() { // in case of reopening a chat, need to make sure it's removed from closed list ChatService.removeFromClosedChatsSession(); } + render() { return ( <Chat {...this.props}> diff --git a/bigbluebutton-html5/imports/ui/components/chat/message-form/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/message-form/component.jsx index 78bcc8081e..85d0c213b7 100755 --- a/bigbluebutton-html5/imports/ui/components/chat/message-form/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/message-form/component.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { PureComponent } from 'react'; import { defineMessages, injectIntl } from 'react-intl'; import cx from 'classnames'; import TextareaAutosize from 'react-autosize-textarea'; @@ -32,7 +32,7 @@ const messages = defineMessages({ }, }); -class MessageForm extends Component { +class MessageForm extends PureComponent { constructor(props) { super(props); diff --git a/bigbluebutton-html5/imports/ui/components/chat/message-form/message-form-actions/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/message-form/message-form-actions/component.jsx deleted file mode 100644 index 08da9326f0..0000000000 --- a/bigbluebutton-html5/imports/ui/components/chat/message-form/message-form-actions/component.jsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; - -import Icon from '../../../icon/component'; -import BaseButton from '../../../button/base/component'; - -const propTypes = { - ...BaseButton.propTypes, -}; - -const defaultProps = { - ...BaseButton.defaultProps, -}; - -const MessageFormActions = () => ( - <BaseButton {...this.props}> - <Icon iconName={'add'} /> - </BaseButton> -); - -export default - - MessageFormActions.propTypes = propTypes; -MessageFormActions.defaultProps = defaultProps; diff --git a/bigbluebutton-html5/imports/ui/components/chat/message-form/message-form-actions/styles.scss b/bigbluebutton-html5/imports/ui/components/chat/message-form/message-form-actions/styles.scss deleted file mode 100644 index 0d56ef179f..0000000000 --- a/bigbluebutton-html5/imports/ui/components/chat/message-form/message-form-actions/styles.scss +++ /dev/null @@ -1 +0,0 @@ -@import "/imports/ui/stylesheets/variables/_all"; diff --git a/bigbluebutton-html5/imports/ui/components/chat/message-list/message-list-item/message/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/message-list/message-list-item/message/component.jsx index c946e6ceeb..614d2f2886 100644 --- a/bigbluebutton-html5/imports/ui/components/chat/message-list/message-list-item/message/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/message-list/message-list-item/message/component.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import _ from 'lodash'; @@ -28,7 +28,7 @@ const isElementInViewport = (el) => { ); }; -export default class MessageListItem extends Component { +export default class MessageListItem extends PureComponent { constructor(props) { super(props); -- GitLab