{ statusBar }
diff --git a/src/components/structures/TimelinePanel.js b/src/components/structures/TimelinePanel.js
index 640ad66d72..3afa0fb77c 100644
--- a/src/components/structures/TimelinePanel.js
+++ b/src/components/structures/TimelinePanel.js
@@ -76,6 +76,9 @@ var TimelinePanel = React.createClass({
// callback which is called when the read-up-to mark is updated.
onReadMarkerUpdated: React.PropTypes.func,
+
+ // opacity for dynamic UI fading effects
+ opacity: React.PropTypes.number,
},
statics: {
@@ -861,6 +864,7 @@ var TimelinePanel = React.createClass({
stickyBottom={ stickyBottom }
onScroll={ this.onMessageListScroll }
onFillRequest={ this.onMessageListFillRequest }
+ opacity={ this.props.opacity }
/>
);
},
diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js
index 6d26e7884d..8a0a91fae9 100644
--- a/src/components/views/rooms/MessageComposer.js
+++ b/src/components/views/rooms/MessageComposer.js
@@ -40,6 +40,9 @@ module.exports = React.createClass({
// callback when a file to upload is chosen
uploadFile: React.PropTypes.func.isRequired,
+
+ // opacity for dynamic UI fading effects
+ opacity: React.PropTypes.number,
},
onUploadClick: function(ev) {
@@ -182,7 +185,7 @@ module.exports = React.createClass({
}
return (
-
+
{controls}
diff --git a/src/components/views/rooms/RoomSettings.js b/src/components/views/rooms/RoomSettings.js
index 2b5a6c7172..fd8bcbfe96 100644
--- a/src/components/views/rooms/RoomSettings.js
+++ b/src/components/views/rooms/RoomSettings.js
@@ -20,6 +20,7 @@ var MatrixClientPeg = require('../../../MatrixClientPeg');
var sdk = require('../../../index');
var Modal = require('../../../Modal');
var ObjectUtils = require("../../../ObjectUtils");
+var dis = require("../../../dispatcher");
module.exports = React.createClass({
displayName: 'RoomSettings',
@@ -69,6 +70,20 @@ module.exports = React.createClass({
}, (err) => {
console.error("Failed to get room visibility: " + err);
});
+
+ dis.dispatch({
+ action: 'ui_opacity',
+ sideOpacity: 0.3,
+ middleOpacity: 0.3,
+ });
+ },
+
+ componentWillUnmount: function() {
+ dis.dispatch({
+ action: 'ui_opacity',
+ sideOpacity: 1.0,
+ middleOpacity: 1.0,
+ });
},
setName: function(name) {