diff --git a/skins/base/css/organisms/RoomView.css b/skins/base/css/organisms/RoomView.css index 1fcb86e428..9341f21335 100644 --- a/skins/base/css/organisms/RoomView.css +++ b/skins/base/css/organisms/RoomView.css @@ -117,3 +117,14 @@ limitations under the License. flex: 0 0 63px; margin-right: 2px; } + +.mx_RoomView_uploadProgressOuter { + width: 100%; + background-color: black; + height: 5px; +} + +.mx_RoomView_uploadProgressInner { + background-color: blue; + height: 5px; +} diff --git a/skins/base/views/molecules/MessageComposer.js b/skins/base/views/molecules/MessageComposer.js index 2f764b4197..9ad1e02922 100644 --- a/skins/base/views/molecules/MessageComposer.js +++ b/skins/base/views/molecules/MessageComposer.js @@ -32,14 +32,8 @@ module.exports = React.createClass({ onUploadFileSelected: function(ev) { var files = ev.target.files; - - ContentMessages.sendContentToRoom( - files[0], this.props.room.roomId, MatrixClientPeg.get() - ).progress(function(ev) { - //console.log("Upload: "+ev.loaded+" / "+ev.total); - }).done(undefined, function() { - // display error message - }); + // MessageComposer shouldn't have to rely on it's parent passing in a callback to upload a file + this.props.uploadFile(files[0]); }, render: function() { diff --git a/skins/base/views/organisms/RoomView.js b/skins/base/views/organisms/RoomView.js index 5878e881e9..a93937f0bc 100644 --- a/skins/base/views/organisms/RoomView.js +++ b/skins/base/views/organisms/RoomView.js @@ -22,6 +22,7 @@ var MatrixClientPeg = require("../../../../src/MatrixClientPeg"); var ComponentBroker = require('../../../../src/ComponentBroker'); var classNames = require("classnames"); +var filesize = require('filesize'); var MessageTile = ComponentBroker.get('molecules/MessageTile'); var RoomHeader = ComponentBroker.get('molecules/RoomHeader'); @@ -76,13 +77,30 @@ module.exports = React.createClass({
); - var typingString = this.getWhoIsTypingString(); - if (typingString) { + if (this.state.upload) { + var innerProgressStyle = { + width: ((this.state.upload.uploadedBytes / this.state.upload.totalBytes) * 100) + '%' + }; statusBar = ( -