Update RoomTiles on custom status change
This commit is contained in:
parent
e08c70b820
commit
c76b273fae
3 changed files with 38 additions and 1 deletions
|
@ -113,6 +113,12 @@ module.exports = React.createClass({
|
||||||
notificationCount: this.props.room.getUnreadNotificationCount(),
|
notificationCount: this.props.room.getUnreadNotificationCount(),
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
// RoomTiles are one of the few components that may show custom status and
|
||||||
|
// also remain on screen while in Settings toggling the feature. This ensures
|
||||||
|
// you can clearly see the status hide and show when toggling the feature.
|
||||||
|
case 'feature_custom_status_changed':
|
||||||
|
this.forceUpdate();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ import {
|
||||||
NotificationsEnabledController,
|
NotificationsEnabledController,
|
||||||
} from "./controllers/NotificationControllers";
|
} from "./controllers/NotificationControllers";
|
||||||
import LazyLoadingController from "./controllers/LazyLoadingController";
|
import LazyLoadingController from "./controllers/LazyLoadingController";
|
||||||
|
import CustomStatusController from "./controllers/CustomStatusController";
|
||||||
|
|
||||||
// These are just a bunch of helper arrays to avoid copy/pasting a bunch of times
|
// These are just a bunch of helper arrays to avoid copy/pasting a bunch of times
|
||||||
const LEVELS_ROOM_SETTINGS = ['device', 'room-device', 'room-account', 'account', 'config'];
|
const LEVELS_ROOM_SETTINGS = ['device', 'room-device', 'room-account', 'account', 'config'];
|
||||||
|
@ -88,6 +89,7 @@ export const SETTINGS = {
|
||||||
displayName: _td("Custom user status messages"),
|
displayName: _td("Custom user status messages"),
|
||||||
supportedLevels: LEVELS_FEATURE,
|
supportedLevels: LEVELS_FEATURE,
|
||||||
default: false,
|
default: false,
|
||||||
|
controller: new CustomStatusController(),
|
||||||
},
|
},
|
||||||
"feature_lazyloading": {
|
"feature_lazyloading": {
|
||||||
isFeature: true,
|
isFeature: true,
|
||||||
|
|
29
src/settings/controllers/CustomStatusController.js
Normal file
29
src/settings/controllers/CustomStatusController.js
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 New Vector 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 SettingController from "./SettingController";
|
||||||
|
import dis from "../../dispatcher";
|
||||||
|
|
||||||
|
export default class CustomStatusController extends SettingController {
|
||||||
|
onChange(level, roomId, newValue) {
|
||||||
|
// Dispatch setting change so that some components that are still visible when the
|
||||||
|
// Settings page is open (such as RoomTiles) can reflect the change.
|
||||||
|
dis.dispatch({
|
||||||
|
action: "feature_custom_status_changed",
|
||||||
|
value: newValue,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue