Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Fix docs & use WithMatrixClient
Browse files Browse the repository at this point in the history
  • Loading branch information
dbkr committed Feb 15, 2017
1 parent 42bb269 commit c082827
Showing 1 changed file with 31 additions and 25 deletions.
56 changes: 31 additions & 25 deletions src/components/views/rooms/RoomSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ limitations under the License.

import q from 'q';
import React from 'react';
import MatrixClientPeg from '../../../MatrixClientPeg';
import SdkConfig from '../../../SdkConfig';
import sdk from '../../../index';
import Modal from '../../../Modal';
Expand All @@ -27,6 +26,7 @@ import ScalarAuthClient from '../../../ScalarAuthClient';
import ScalarMessaging from '../../../ScalarMessaging';
import UserSettingsStore from '../../../UserSettingsStore';
import AccessibleButton from '../elements/AccessibleButton';
import WithMatrixClient from '../../../wrappers/WithMatrixClient';


// parse a string as an integer; if the input is undefined, or cannot be parsed
Expand All @@ -36,9 +36,12 @@ function parseIntWithDefault(val, def) {
return isNaN(res) ? def : res;
}

const BannedUser = React.createClass({
const BannedUser = WithMatrixClient(React.createClass({
propTypes: {
member: React.PropTypes.string.isRequired,
/* MatrixClient instance */
matrixClient: React.PropTypes.object.isRequired,

member: React.PropTypes.object.isRequired, // js-sdk member object
},

_onUnbanClick: function() {
Expand All @@ -50,7 +53,7 @@ const BannedUser = React.createClass({
onFinished: (proceed) => {
if (!proceed) return;

MatrixClientPeg.get().unban(
this.props.matrixClient.unban(
this.props.member.roomId, this.props.member.userId,
).catch((err) => {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
Expand All @@ -75,12 +78,15 @@ const BannedUser = React.createClass({
</li>
);
}
});
}));

module.exports = React.createClass({
module.exports = WithMatrixClient(React.createClass({
displayName: 'RoomSettings',

propTypes: {
/* MatrixClient instance */
matrixClient: React.PropTypes.object.isRequired,

room: React.PropTypes.object.isRequired,
onSaveClick: React.PropTypes.func,
onCancelClick: React.PropTypes.func,
Expand Down Expand Up @@ -117,9 +123,9 @@ module.exports = React.createClass({
componentWillMount: function() {
ScalarMessaging.startListening();

MatrixClientPeg.get().on("RoomMember.membership", this._onRoomMemberMembership);
this.props.matrixClient.on("RoomMember.membership", this._onRoomMemberMembership);

MatrixClientPeg.get().getRoomDirectoryVisibility(
this.props.matrixClient.getRoomDirectoryVisibility(
this.props.room.roomId
).done((result) => {
this.setState({ isRoomPublished: result.visibility === "public" });
Expand Down Expand Up @@ -147,7 +153,7 @@ module.exports = React.createClass({
componentWillUnmount: function() {
ScalarMessaging.stopListening();

MatrixClientPeg.get().removeListener("RoomMember.membership", this._onRoomMemberMembership);
this.props.matrixClient.removeListener("RoomMember.membership", this._onRoomMemberMembership);

dis.dispatch({
action: 'ui_opacity',
Expand Down Expand Up @@ -195,37 +201,37 @@ module.exports = React.createClass({

// name and topic
if (this._hasDiff(this.state.name, originalState.name)) {
promises.push(MatrixClientPeg.get().setRoomName(roomId, this.state.name));
promises.push(this.props.matrixClient.setRoomName(roomId, this.state.name));
}
if (this._hasDiff(this.state.topic, originalState.topic)) {
promises.push(MatrixClientPeg.get().setRoomTopic(roomId, this.state.topic));
promises.push(this.props.matrixClient.setRoomTopic(roomId, this.state.topic));
}

if (this.state.history_visibility !== originalState.history_visibility) {
promises.push(MatrixClientPeg.get().sendStateEvent(
promises.push(this.props.matrixClient.sendStateEvent(
roomId, "m.room.history_visibility",
{ history_visibility: this.state.history_visibility },
""
));
}

if (this.state.isRoomPublished !== originalState.isRoomPublished) {
promises.push(MatrixClientPeg.get().setRoomDirectoryVisibility(
promises.push(this.props.matrixClient.setRoomDirectoryVisibility(
roomId,
this.state.isRoomPublished ? "public" : "private"
));
}

if (this.state.join_rule !== originalState.join_rule) {
promises.push(MatrixClientPeg.get().sendStateEvent(
promises.push(this.props.matrixClient.sendStateEvent(
roomId, "m.room.join_rules",
{ join_rule: this.state.join_rule },
""
));
}

if (this.state.guest_access !== originalState.guest_access) {
promises.push(MatrixClientPeg.get().sendStateEvent(
promises.push(this.props.matrixClient.sendStateEvent(
roomId, "m.room.guest_access",
{ guest_access: this.state.guest_access },
""
Expand All @@ -236,7 +242,7 @@ module.exports = React.createClass({
// power levels
var powerLevels = this._getPowerLevels();
if (powerLevels) {
promises.push(MatrixClientPeg.get().sendStateEvent(
promises.push(this.props.matrixClient.sendStateEvent(
roomId, "m.room.power_levels", powerLevels, ""
));
}
Expand All @@ -249,12 +255,12 @@ module.exports = React.createClass({
switch (diff.place) {
case "add":
promises.push(
MatrixClientPeg.get().setRoomTag(roomId, diff.key, {})
this.props.matrixClient.setRoomTag(roomId, diff.key, {})
);
break;
case "del":
promises.push(
MatrixClientPeg.get().deleteRoomTag(roomId, diff.key)
this.props.matrixClient.deleteRoomTag(roomId, diff.key)
);
break;
default:
Expand Down Expand Up @@ -311,7 +317,7 @@ module.exports = React.createClass({
if (!encrypt) { return q(); }

var roomId = this.props.room.roomId;
return MatrixClientPeg.get().sendStateEvent(
return this.props.matrixClient.sendStateEvent(
roomId, "m.room.encryption",
{ algorithm: "m.megolm.v1.aes-sha2" }
);
Expand Down Expand Up @@ -476,7 +482,7 @@ module.exports = React.createClass({
},

mayChangeRoomAccess: function() {
var cli = MatrixClientPeg.get();
var cli = this.props.matrixClient;
var roomState = this.props.room.currentState;
return (roomState.mayClientSendStateEvent("m.room.join_rules", cli) &&
roomState.mayClientSendStateEvent("m.room.guest_access", cli));
Expand Down Expand Up @@ -513,7 +519,7 @@ module.exports = React.createClass({

onForgetClick() {
// FIXME: duplicated with RoomTagContextualMenu (and dead code in RoomView)
MatrixClientPeg.get().forget(this.props.room.roomId).done(function() {
this.props.matrixClient.forget(this.props.room.roomId).done(function() {
dis.dispatch({ action: 'view_next_room' });
}, function(err) {
var errCode = err.errcode || "unknown error code";
Expand Down Expand Up @@ -554,7 +560,7 @@ module.exports = React.createClass({
},

_renderEncryptionSection: function() {
var cli = MatrixClientPeg.get();
var cli = this.props.matrixClient;
var roomState = this.props.room.currentState;
var isEncrypted = cli.isRoomEncrypted(this.props.room.roomId);
var isGlobalBlacklistUnverified = UserSettingsStore.getLocalSettings().blacklistUnverifiedDevices;
Expand Down Expand Up @@ -608,7 +614,7 @@ module.exports = React.createClass({
var PowerSelector = sdk.getComponent('elements.PowerSelector');
var Loader = sdk.getComponent("elements.Spinner");

var cli = MatrixClientPeg.get();
var cli = this.props.matrixClient;
var roomState = this.props.room.currentState;
var user_id = cli.credentials.userId;

Expand Down Expand Up @@ -833,7 +839,7 @@ module.exports = React.createClass({
<input type="checkbox" disabled={ !roomState.mayClientSendStateEvent("m.room.aliases", cli) }
onChange={ this._onToggle.bind(this, "isRoomPublished", true, false)}
checked={this.state.isRoomPublished}/>
List this room in { MatrixClientPeg.get().getDomain() }'s room directory?
List this room in { this.props.matrixClient.getDomain() }'s room directory?
</label>
</div>
<div className="mx_RoomSettings_settings">
Expand Down Expand Up @@ -943,4 +949,4 @@ module.exports = React.createClass({
</div>
);
}
});
}));

0 comments on commit c082827

Please sign in to comment.