diff --git a/src/components/structures/GroupView.js b/src/components/structures/GroupView.js index f51e21a9ad..0f10ba60e2 100644 --- a/src/components/structures/GroupView.js +++ b/src/components/structures/GroupView.js @@ -15,17 +15,18 @@ limitations under the License. */ import React from 'react'; +import PropTypes from 'prop-types'; import MatrixClientPeg from '../../MatrixClientPeg'; import sdk from '../../index'; import { sanitizedHtmlNode } from '../../HtmlUtils'; import { _t } from '../../languageHandler'; -module.exports = React.createClass({ +export default React.createClass({ displayName: 'GroupView', propTypes: { - groupId: React.PropTypes.string.isRequired, + groupId: PropTypes.string.isRequired, }, getInitialState: function() { @@ -64,21 +65,13 @@ module.exports = React.createClass({ }, render: function() { - const BaseAvatar = sdk.getComponent("avatars.BaseAvatar"); + const GroupAvatar = sdk.getComponent("avatars.GroupAvatar"); const Loader = sdk.getComponent("elements.Spinner"); if (this.state.summary === null && this.state.error === null) { return ; } else if (this.state.summary) { const summary = this.state.summary; - let avatarNode = null; - if (summary.profile && summary.profile.avatar_url) { - avatarNode = ; - } let description = null; if (summary.profile && summary.profile.long_description) { description = sanitizedHtmlNode(summary.profile.long_description); @@ -103,7 +96,11 @@ module.exports = React.createClass({
- {avatarNode} +
{nameNode} diff --git a/src/components/structures/MyGroups.js b/src/components/structures/MyGroups.js index a3459a16c7..cd0dda33f9 100644 --- a/src/components/structures/MyGroups.js +++ b/src/components/structures/MyGroups.js @@ -43,7 +43,7 @@ const GroupTile = React.createClass({ } }); -module.exports = WithMatrixClient(React.createClass({ +export default WithMatrixClient(React.createClass({ displayName: 'GroupList', propTypes: { diff --git a/src/components/views/avatars/GroupAvatar.js b/src/components/views/avatars/GroupAvatar.js new file mode 100644 index 0000000000..36687af2ca --- /dev/null +++ b/src/components/views/avatars/GroupAvatar.js @@ -0,0 +1,62 @@ +/* +Copyright 2017 Vector Creations Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import React from 'react'; +import PropTypes from 'prop-types'; +import sdk from '../../../index'; +import MatrixClientPeg from '../../../MatrixClientPeg'; + +export default React.createClass({ + displayName: 'GroupAvatar', + + propTypes: { + groupId: PropTypes.string, + groupAvatarUrl: PropTypes.string, + width: PropTypes.number, + height: PropTypes.number, + resizeMethod: PropTypes.string, + }, + + getDefaultProps: function() { + return { + width: 36, + height: 36, + resizeMethod: 'crop', + }; + }, + + getGroupAvatarUrl: function(props) { + return MatrixClientPeg.get().mxcUrlToHttp( + this.props.groupAvatarUrl, + this.props.width, + this.props.height, + this.props.resizeMethod, + ); + }, + + render: function() { + const BaseAvatar = sdk.getComponent("avatars.BaseAvatar"); + + return ( + + ); + } +}); diff --git a/src/components/views/dialogs/CreateGroupDialog.js b/src/components/views/dialogs/CreateGroupDialog.js index 64984ebf5c..5e050b53b2 100644 --- a/src/components/views/dialogs/CreateGroupDialog.js +++ b/src/components/views/dialogs/CreateGroupDialog.js @@ -15,6 +15,7 @@ limitations under the License. */ import React from 'react'; +import PropTypes from 'prop-types'; import sdk from '../../../index'; import dis from '../../../dispatcher'; import { _t } from '../../../languageHandler'; @@ -28,7 +29,7 @@ const GROUP_REGEX = /^\+(.*?):(.*)$/; export default React.createClass({ displayName: 'CreateGroupDialog', propTypes: { - onFinished: React.PropTypes.func.isRequired, + onFinished: PropTypes.func.isRequired, }, getInitialState: function() {