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

Commit 3a0b63d

Browse files
authored
Merge pull request #537 from matrix-org/rav/memberinfo_use_client_from_context
Make MemberInfo use the matrixclient from the context
2 parents 0ab46df + f301e55 commit 3a0b63d

File tree

1 file changed

+27
-26
lines changed

1 file changed

+27
-26
lines changed

src/components/views/rooms/MemberInfo.js

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ limitations under the License.
2727
*/
2828
var React = require('react');
2929
var classNames = require('classnames');
30-
var MatrixClientPeg = require("../../../MatrixClientPeg");
3130
var dis = require("../../../dispatcher");
3231
var Modal = require("../../../Modal");
3332
var sdk = require('../../../index');
@@ -36,11 +35,13 @@ var createRoom = require('../../../createRoom');
3635
var DMRoomMap = require('../../../utils/DMRoomMap');
3736
var Unread = require('../../../Unread');
3837
var Receipt = require('../../../utils/Receipt');
38+
var WithMatrixClient = require('../../../wrappers/WithMatrixClient');
3939

40-
module.exports = React.createClass({
40+
module.exports = WithMatrixClient(React.createClass({
4141
displayName: 'MemberInfo',
4242

4343
propTypes: {
44+
matrixClient: React.PropTypes.object.isRequired,
4445
member: React.PropTypes.object.isRequired,
4546
onFinished: React.PropTypes.func,
4647
},
@@ -72,10 +73,10 @@ module.exports = React.createClass({
7273

7374
// only display the devices list if our client supports E2E *and* the
7475
// feature is enabled in the user settings
75-
this._enableDevices = MatrixClientPeg.get().isCryptoEnabled() &&
76+
this._enableDevices = this.props.matrixClient.isCryptoEnabled() &&
7677
UserSettingsStore.isFeatureEnabled("e2e_encryption");
7778

78-
const cli = MatrixClientPeg.get();
79+
const cli = this.props.matrixClient;
7980
cli.on("deviceVerificationChanged", this.onDeviceVerificationChanged);
8081
cli.on("Room", this.onRoom);
8182
cli.on("deleteRoom", this.onDeleteRoom);
@@ -98,7 +99,7 @@ module.exports = React.createClass({
9899
},
99100

100101
componentWillUnmount: function() {
101-
var client = MatrixClientPeg.get();
102+
var client = this.props.matrixClient;
102103
if (client) {
103104
client.removeListener("deviceVerificationChanged", this.onDeviceVerificationChanged);
104105
client.removeListener("Room", this.onRoom);
@@ -140,7 +141,7 @@ module.exports = React.createClass({
140141
if (userId == this.props.member.userId) {
141142
// no need to re-download the whole thing; just update our copy of
142143
// the list.
143-
var devices = MatrixClientPeg.get().getStoredDevicesForUser(userId);
144+
var devices = this.props.matrixClient.getStoredDevicesForUser(userId);
144145
this.setState({devices: devices});
145146
}
146147
},
@@ -165,7 +166,7 @@ module.exports = React.createClass({
165166
onRoomReceipt: function(receiptEvent, room) {
166167
// because if we read a notification, it will affect notification count
167168
// only bother updating if there's a receipt from us
168-
if (Receipt.findReadReceiptFromUserId(receiptEvent, MatrixClientPeg.get().credentials.userId)) {
169+
if (Receipt.findReadReceiptFromUserId(receiptEvent, this.props.matrixClient.credentials.userId)) {
169170
this.forceUpdate();
170171
}
171172
},
@@ -206,7 +207,7 @@ module.exports = React.createClass({
206207
var cancelled = false;
207208
this._cancelDeviceList = function() { cancelled = true; }
208209

209-
var client = MatrixClientPeg.get();
210+
var client = this.props.matrixClient;
210211
var self = this;
211212
client.downloadKeys([member.userId], true).finally(function() {
212213
self._cancelDeviceList = null;
@@ -229,7 +230,7 @@ module.exports = React.createClass({
229230
var roomId = this.props.member.roomId;
230231
var target = this.props.member.userId;
231232
this.setState({ updating: this.state.updating + 1 });
232-
MatrixClientPeg.get().kick(roomId, target).then(function() {
233+
this.props.matrixClient.kick(roomId, target).then(function() {
233234
// NO-OP; rely on the m.room.member event coming down else we could
234235
// get out of sync if we force setState here!
235236
console.log("Kick success");
@@ -250,7 +251,7 @@ module.exports = React.createClass({
250251
var roomId = this.props.member.roomId;
251252
var target = this.props.member.userId;
252253
this.setState({ updating: this.state.updating + 1 });
253-
MatrixClientPeg.get().ban(roomId, target).then(
254+
this.props.matrixClient.ban(roomId, target).then(
254255
function() {
255256
// NO-OP; rely on the m.room.member event coming down else we could
256257
// get out of sync if we force setState here!
@@ -271,7 +272,7 @@ module.exports = React.createClass({
271272
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
272273
var roomId = this.props.member.roomId;
273274
var target = this.props.member.userId;
274-
var room = MatrixClientPeg.get().getRoom(roomId);
275+
var room = this.props.matrixClient.getRoom(roomId);
275276
if (!room) {
276277
this.props.onFinished();
277278
return;
@@ -300,7 +301,7 @@ module.exports = React.createClass({
300301

301302
if (level !== NaN) {
302303
this.setState({ updating: this.state.updating + 1 });
303-
MatrixClientPeg.get().setPowerLevel(roomId, target, level, powerLevelEvent).then(
304+
this.props.matrixClient.setPowerLevel(roomId, target, level, powerLevelEvent).then(
304305
function() {
305306
// NO-OP; rely on the m.room.member event coming down else we could
306307
// get out of sync if we force setState here!
@@ -322,7 +323,7 @@ module.exports = React.createClass({
322323
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
323324
var roomId = this.props.member.roomId;
324325
var target = this.props.member.userId;
325-
var room = MatrixClientPeg.get().getRoom(roomId);
326+
var room = this.props.matrixClient.getRoom(roomId);
326327
if (!room) {
327328
this.props.onFinished();
328329
return;
@@ -334,7 +335,7 @@ module.exports = React.createClass({
334335
this.props.onFinished();
335336
return;
336337
}
337-
var me = room.getMember(MatrixClientPeg.get().credentials.userId);
338+
var me = room.getMember(this.props.matrixClient.credentials.userId);
338339
if (!me) {
339340
this.props.onFinished();
340341
return;
@@ -345,7 +346,7 @@ module.exports = React.createClass({
345346
// toggle the level
346347
var newLevel = this.state.isTargetMod ? defaultLevel : modLevel;
347348
this.setState({ updating: this.state.updating + 1 });
348-
MatrixClientPeg.get().setPowerLevel(roomId, target, parseInt(newLevel), powerLevelEvent).then(
349+
this.props.matrixClient.setPowerLevel(roomId, target, parseInt(newLevel), powerLevelEvent).then(
349350
function() {
350351
// NO-OP; rely on the m.room.member event coming down else we could
351352
// get out of sync if we force setState here!
@@ -372,7 +373,7 @@ module.exports = React.createClass({
372373

373374
_applyPowerChange: function(roomId, target, powerLevel, powerLevelEvent) {
374375
this.setState({ updating: this.state.updating + 1 });
375-
MatrixClientPeg.get().setPowerLevel(roomId, target, parseInt(powerLevel), powerLevelEvent).then(
376+
this.props.matrixClient.setPowerLevel(roomId, target, parseInt(powerLevel), powerLevelEvent).then(
376377
function() {
377378
// NO-OP; rely on the m.room.member event coming down else we could
378379
// get out of sync if we force setState here!
@@ -393,7 +394,7 @@ module.exports = React.createClass({
393394
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
394395
var roomId = this.props.member.roomId;
395396
var target = this.props.member.userId;
396-
var room = MatrixClientPeg.get().getRoom(roomId);
397+
var room = this.props.matrixClient.getRoom(roomId);
397398
var self = this;
398399
if (!room) {
399400
this.props.onFinished();
@@ -407,7 +408,7 @@ module.exports = React.createClass({
407408
return;
408409
}
409410
if (powerLevelEvent.getContent().users) {
410-
var myPower = powerLevelEvent.getContent().users[MatrixClientPeg.get().credentials.userId];
411+
var myPower = powerLevelEvent.getContent().users[this.props.matrixClient.credentials.userId];
411412
if (parseInt(myPower) === parseInt(powerLevel)) {
412413
var QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
413414
Modal.createDialog(QuestionDialog, {
@@ -459,7 +460,7 @@ module.exports = React.createClass({
459460
muted: false,
460461
modifyLevel: false
461462
};
462-
var room = MatrixClientPeg.get().getRoom(member.roomId);
463+
var room = this.props.matrixClient.getRoom(member.roomId);
463464
if (!room) {
464465
return defaultPerms;
465466
}
@@ -469,7 +470,7 @@ module.exports = React.createClass({
469470
if (!powerLevels) {
470471
return defaultPerms;
471472
}
472-
var me = room.getMember(MatrixClientPeg.get().credentials.userId);
473+
var me = room.getMember(this.props.matrixClient.credentials.userId);
473474
if (!me) {
474475
return defaultPerms;
475476
}
@@ -534,7 +535,7 @@ module.exports = React.createClass({
534535
var avatarUrl = this.props.member.user ? this.props.member.user.avatarUrl : this.props.member.events.member.getContent().avatar_url;
535536
if(!avatarUrl) return;
536537

537-
var httpUrl = MatrixClientPeg.get().mxcUrlToHttp(avatarUrl);
538+
var httpUrl = this.props.matrixClient.mxcUrlToHttp(avatarUrl);
538539
var ImageView = sdk.getComponent("elements.ImageView");
539540
var params = {
540541
src: httpUrl,
@@ -582,17 +583,17 @@ module.exports = React.createClass({
582583

583584
render: function() {
584585
var startChat, kickButton, banButton, muteButton, giveModButton, spinner;
585-
if (this.props.member.userId !== MatrixClientPeg.get().credentials.userId) {
586-
const dmRoomMap = new DMRoomMap(MatrixClientPeg.get());
586+
if (this.props.member.userId !== this.props.matrixClient.credentials.userId) {
587+
const dmRoomMap = new DMRoomMap(this.props.matrixClient);
587588
const dmRooms = dmRoomMap.getDMRoomsForUserId(this.props.member.userId);
588589

589590
const RoomTile = sdk.getComponent("rooms.RoomTile");
590591

591592
const tiles = [];
592593
for (const roomId of dmRooms) {
593-
const room = MatrixClientPeg.get().getRoom(roomId);
594+
const room = this.props.matrixClient.getRoom(roomId);
594595
if (room) {
595-
const me = room.getMember(MatrixClientPeg.get().credentials.userId);
596+
const me = room.getMember(this.props.matrixClient.credentials.userId);
596597
const highlight = (
597598
room.getUnreadNotificationCount('highlight') > 0 ||
598599
me.membership == "invite"
@@ -709,4 +710,4 @@ module.exports = React.createClass({
709710
</div>
710711
);
711712
}
712-
});
713+
}));

0 commit comments

Comments
 (0)