From 183f45bc1faa11710dc51ad79a2bbd5428bc0227 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 7 Jul 2017 10:41:59 +0100 Subject: [PATCH 1/4] Fix lint errors --- src/components/structures/LoggedInView.js | 22 +++++++++++---------- src/components/structures/MyGroups.js | 8 ++++---- src/components/views/avatars/GroupAvatar.js | 6 ++++-- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/components/structures/LoggedInView.js b/src/components/structures/LoggedInView.js index edc918e2a4..f1053618dc 100644 --- a/src/components/structures/LoggedInView.js +++ b/src/components/structures/LoggedInView.js @@ -269,17 +269,19 @@ export default React.createClass({ break; case PageTypes.HomePage: - // If team server config is present, pass the teamServerURL. props.teamToken - // must also be set for the team page to be displayed, otherwise the - // welcomePageUrl is used (which might be undefined). - const teamServerUrl = this.props.config.teamServerConfig ? - this.props.config.teamServerConfig.teamServerURL : null; + { + // If team server config is present, pass the teamServerURL. props.teamToken + // must also be set for the team page to be displayed, otherwise the + // welcomePageUrl is used (which might be undefined). + const teamServerUrl = this.props.config.teamServerConfig ? + this.props.config.teamServerConfig.teamServerURL : null; - page_element = ; + page_element = ; + } break; case PageTypes.UserView: diff --git a/src/components/structures/MyGroups.js b/src/components/structures/MyGroups.js index 222e424b2d..fba6f69d99 100644 --- a/src/components/structures/MyGroups.js +++ b/src/components/structures/MyGroups.js @@ -40,7 +40,7 @@ const GroupTile = React.createClass({ render: function() { return {this.props.groupId}; - } + }, }); export default WithMatrixClient(React.createClass({ @@ -84,12 +84,12 @@ export default WithMatrixClient(React.createClass({ let content; if (this.state.groups) { - let groupNodes = []; + const groupNodes = []; this.state.groups.forEach((g) => { groupNodes.push(
-
+ , ); }); content =
@@ -117,7 +117,7 @@ export default WithMatrixClient(React.createClass({ {_t( 'Create a group to represent your community! '+ 'Define a set of rooms and your own custom homepage '+ - 'to mark out your space in the Matrix universe.' + 'to mark out your space in the Matrix universe.', )}
diff --git a/src/components/views/avatars/GroupAvatar.js b/src/components/views/avatars/GroupAvatar.js index 15c71e59d5..506714e857 100644 --- a/src/components/views/avatars/GroupAvatar.js +++ b/src/components/views/avatars/GroupAvatar.js @@ -38,7 +38,7 @@ export default React.createClass({ }; }, - getGroupAvatarUrl: function(props) { + getGroupAvatarUrl: function() { return MatrixClientPeg.get().mxcUrlToHttp( this.props.groupAvatarUrl, this.props.width, @@ -50,6 +50,8 @@ export default React.createClass({ render: function() { const BaseAvatar = sdk.getComponent("avatars.BaseAvatar"); // extract the props we use from props so we can pass any others through + // should consider adding this as a global rule in js-sdk? + /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/ const {groupId, groupAvatarUrl, ...otherProps} = this.props; return ( @@ -60,5 +62,5 @@ export default React.createClass({ {...otherProps} /> ); - } + }, }); From fea0a941ce1a7d4f93e72e64b4c91bea9d936cdb Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 7 Jul 2017 11:01:54 +0100 Subject: [PATCH 3/4] Fix lint --- src/components/views/dialogs/CreateGroupDialog.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/components/views/dialogs/CreateGroupDialog.js b/src/components/views/dialogs/CreateGroupDialog.js index 5e050b53b2..c436d938df 100644 --- a/src/components/views/dialogs/CreateGroupDialog.js +++ b/src/components/views/dialogs/CreateGroupDialog.js @@ -20,7 +20,6 @@ import sdk from '../../../index'; import dis from '../../../dispatcher'; import { _t } from '../../../languageHandler'; import MatrixClientPeg from '../../../MatrixClientPeg'; -import AccessibleButton from '../elements/AccessibleButton'; // We match fairly liberally and leave it up to the server to reject if // there are invalid characters etc. @@ -62,14 +61,17 @@ export default React.createClass({ const parsedGroupId = this._parseGroupId(this.state.groupId); let error = null; if (parsedGroupId === null) { - error = _t("Group IDs must be of the form +localpart:%(domain)s", {domain: MatrixClientPeg.get().getDomain()}); + error = _t( + "Group IDs must be of the form +localpart:%(domain)s", + {domain: MatrixClientPeg.get().getDomain()}, + ); } else { - const localpart = parsedGroupId[0]; const domain = parsedGroupId[1]; if (domain !== MatrixClientPeg.get().getDomain()) { error = _t( - "It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s", - {domain: MatrixClientPeg.get().getDomain()} + "It is currently only possible to create groups on your own home server: "+ + "use a group ID ending with %(domain)s", + {domain: MatrixClientPeg.get().getDomain()}, ); } } @@ -114,6 +116,9 @@ export default React.createClass({ * Parse a string that may be a group ID * If the string is a valid group ID, return a list of [localpart, domain], * otherwise return null. + * + * @param {string} groupId The ID of the group + * @return {string[]} array of localpart, domain */ _parseGroupId: function(groupId) { const matches = GROUP_REGEX.exec(this.state.groupId); From bc8c2d442b339788333b0d3c30a29656c1e71b27 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 7 Jul 2017 11:34:20 +0100 Subject: [PATCH 4/4] WithMatrixClient -> withMatrixClient because we're using it as a function rather than a React component --- src/components/structures/MyGroups.js | 4 ++-- src/components/views/rooms/EventTile.js | 4 ++-- src/components/views/rooms/MemberInfo.js | 4 ++-- src/components/views/settings/AddPhoneNumber.js | 4 ++-- src/wrappers/{WithMatrixClient.js => withMatrixClient.js} | 3 ++- 5 files changed, 10 insertions(+), 9 deletions(-) rename src/wrappers/{WithMatrixClient.js => withMatrixClient.js} (92%) diff --git a/src/components/structures/MyGroups.js b/src/components/structures/MyGroups.js index fba6f69d99..49a2367db8 100644 --- a/src/components/structures/MyGroups.js +++ b/src/components/structures/MyGroups.js @@ -17,7 +17,7 @@ limitations under the License. import React from 'react'; import sdk from '../../index'; import { _t, _tJsx } from '../../languageHandler'; -import WithMatrixClient from '../../wrappers/WithMatrixClient'; +import withMatrixClient from '../../wrappers/withMatrixClient'; import AccessibleButton from '../views/elements/AccessibleButton'; import dis from '../../dispatcher'; import PropTypes from 'prop-types'; @@ -43,7 +43,7 @@ const GroupTile = React.createClass({ }, }); -export default WithMatrixClient(React.createClass({ +export default withMatrixClient(React.createClass({ displayName: 'MyGroups', propTypes: { diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js index 170925999d..bb085279e8 100644 --- a/src/components/views/rooms/EventTile.js +++ b/src/components/views/rooms/EventTile.js @@ -24,7 +24,7 @@ var Modal = require('../../../Modal'); var sdk = require('../../../index'); var TextForEvent = require('../../../TextForEvent'); -import WithMatrixClient from '../../../wrappers/WithMatrixClient'; +import withMatrixClient from '../../../wrappers/withMatrixClient'; var ContextualMenu = require('../../structures/ContextualMenu'); import dis from '../../../dispatcher'; @@ -59,7 +59,7 @@ var MAX_READ_AVATARS = 5; // | '--------------------------------------' | // '----------------------------------------------------------' -module.exports = WithMatrixClient(React.createClass({ +module.exports = withMatrixClient(React.createClass({ displayName: 'EventTile', propTypes: { diff --git a/src/components/views/rooms/MemberInfo.js b/src/components/views/rooms/MemberInfo.js index 6dc86f9a97..c034f0e704 100644 --- a/src/components/views/rooms/MemberInfo.js +++ b/src/components/views/rooms/MemberInfo.js @@ -36,12 +36,12 @@ import createRoom from '../../../createRoom'; import DMRoomMap from '../../../utils/DMRoomMap'; import Unread from '../../../Unread'; import { findReadReceiptFromUserId } from '../../../utils/Receipt'; -import WithMatrixClient from '../../../wrappers/WithMatrixClient'; +import withMatrixClient from '../../../wrappers/withMatrixClient'; import AccessibleButton from '../elements/AccessibleButton'; import GeminiScrollbar from 'react-gemini-scrollbar'; -module.exports = WithMatrixClient(React.createClass({ +module.exports = withMatrixClient(React.createClass({ displayName: 'MemberInfo', propTypes: { diff --git a/src/components/views/settings/AddPhoneNumber.js b/src/components/views/settings/AddPhoneNumber.js index dd79720e80..7bc551477e 100644 --- a/src/components/views/settings/AddPhoneNumber.js +++ b/src/components/views/settings/AddPhoneNumber.js @@ -19,10 +19,10 @@ import { _t } from '../../../languageHandler'; import sdk from '../../../index'; import AddThreepid from '../../../AddThreepid'; -import WithMatrixClient from '../../../wrappers/WithMatrixClient'; +import withMatrixClient from '../../../wrappers/withMatrixClient'; import Modal from '../../../Modal'; -export default WithMatrixClient(React.createClass({ +export default withMatrixClient(React.createClass({ displayName: 'AddPhoneNumber', propTypes: { diff --git a/src/wrappers/WithMatrixClient.js b/src/wrappers/withMatrixClient.js similarity index 92% rename from src/wrappers/WithMatrixClient.js rename to src/wrappers/withMatrixClient.js index 8e56d17dff..2333358817 100644 --- a/src/wrappers/WithMatrixClient.js +++ b/src/wrappers/withMatrixClient.js @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +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. @@ -26,7 +27,7 @@ import React from 'react'; */ export default function(WrappedComponent) { return React.createClass({ - displayName: "WithMatrixClient<" + WrappedComponent.displayName + ">", + displayName: "withMatrixClient<" + WrappedComponent.displayName + ">", contextTypes: { matrixClient: React.PropTypes.instanceOf(Matrix.MatrixClient).isRequired,