From 2139fb74bbbd3c7f1865efd49342029939393584 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 23 Apr 2017 09:56:43 +0100 Subject: [PATCH 01/16] change show logic to same as that of the tray icon Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/vector/platform/ElectronPlatform.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js index b0928a8f..21d324a4 100644 --- a/src/vector/platform/ElectronPlatform.js +++ b/src/vector/platform/ElectronPlatform.js @@ -106,13 +106,14 @@ export default class ElectronPlatform extends VectorBasePlatform { notification.onclick = function() { dis.dispatch({ action: 'view_room', - room_id: room.roomId + room_id: room.roomId, }); global.focus(); - const currentWin = electron.remote.getCurrentWindow(); - currentWin.show(); - currentWin.restore(); - currentWin.focus(); + const win = electron.remote.getCurrentWindow(); + + if (win.isMinimized()) win.restore(); + else if (!win.isVisible()) win.show(); + else win.focus(); }; return notification; From b3c9229aeeae48620a1a8164dc1f1eb1cdef8cfb Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 23 Apr 2017 09:59:00 +0100 Subject: [PATCH 02/16] DRY code and change double quotes to single Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/vector/platform/ElectronPlatform.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/vector/platform/ElectronPlatform.js b/src/vector/platform/ElectronPlatform.js index 21d324a4..9c857e35 100644 --- a/src/vector/platform/ElectronPlatform.js +++ b/src/vector/platform/ElectronPlatform.js @@ -24,12 +24,12 @@ import q from 'q'; const electron = require('electron'); const remote = electron.remote; -electron.remote.autoUpdater.on('update-downloaded', onUpdateDownloaded); +remote.autoUpdater.on('update-downloaded', onUpdateDownloaded); function onUpdateDownloaded(ev, releaseNotes, ver, date, updateURL) { dis.dispatch({ action: 'new_version', - currentVersion: electron.remote.app.getVersion(), + currentVersion: remote.app.getVersion(), newVersion: ver, releaseNotes: releaseNotes, }); @@ -68,7 +68,7 @@ export default class ElectronPlatform extends VectorBasePlatform { try { remote.app.setBadgeCount(count); } catch (e) { - console.error("Failed to set notification count", e); + console.error('Failed to set notification count', e); } } @@ -89,7 +89,7 @@ export default class ElectronPlatform extends VectorBasePlatform { // we only have to strip out < and > as the spec doesn't include anything about things like & // so we shouldn't assume that all implementations will treat those properly. Very basic tag parsing is done. if (window.process.platform === 'linux') { - msg = msg.replace(//g, ">"); + msg = msg.replace(//g, '>'); } // Notifications in Electron use the HTML5 notification API @@ -98,7 +98,7 @@ export default class ElectronPlatform extends VectorBasePlatform { { body: msg, icon: avatarUrl, - tag: "vector", + tag: 'vector', silent: true, // we play our own sounds } ); @@ -109,7 +109,7 @@ export default class ElectronPlatform extends VectorBasePlatform { room_id: room.roomId, }); global.focus(); - const win = electron.remote.getCurrentWindow(); + const win = remote.getCurrentWindow(); if (win.isMinimized()) win.restore(); else if (!win.isVisible()) win.show(); @@ -124,7 +124,7 @@ export default class ElectronPlatform extends VectorBasePlatform { } getAppVersion() { - return q(electron.remote.app.getVersion()); + return q(remote.app.getVersion()); } pollForUpdate() { @@ -141,7 +141,7 @@ export default class ElectronPlatform extends VectorBasePlatform { } getDefaultDeviceDisplayName() { - return "Riot Desktop on " + platformFriendlyName(); + return 'Riot Desktop on ' + platformFriendlyName(); } screenCaptureErrorString() { @@ -153,6 +153,6 @@ export default class ElectronPlatform extends VectorBasePlatform { } reload() { - electron.remote.getCurrentWebContents().reload(); + remote.getCurrentWebContents().reload(); } } From c067800a4fa4a32d809e685a0df72c69c345505a Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Mon, 24 Apr 2017 10:00:39 +0100 Subject: [PATCH 03/16] Disable dropdown highlight on focus --- .../css/matrix-react-sdk/views/elements/_Dropdown.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_Dropdown.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_Dropdown.scss index 1f9cbb63..26fe3792 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/elements/_Dropdown.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_Dropdown.scss @@ -31,6 +31,11 @@ limitations under the License. border-color: $accent-color; } +/* Disable dropdown highlight on focus */ +.mx_Dropdown_input.mx_AccessibleButton:focus { + filter: none; +} + .mx_Dropdown_arrow { border-color: $primary-fg-color transparent transparent; border-style: solid; From 61bba6c31f060df4e78ff314bb1b614494530d3c Mon Sep 17 00:00:00 2001 From: turt2live Date: Mon, 24 Apr 2017 08:44:53 -0600 Subject: [PATCH 04/16] CSS to make h1 and h2 the same size as h1. Addresses #1772 Signed-off-by: Travis Ralston --- .../css/matrix-react-sdk/views/rooms/_EventTile.scss | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss index 4f01aeee..5adf016f 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss @@ -331,6 +331,14 @@ limitations under the License. font-family: inherit ! important; } + +/* Make h1 and h2 the same size as h3. */ +.mx_EventTile_content .markdown-body h1, +.mx_EventTile_content .markdown-body h2 +{ + font-size: 1.5em; +} + .mx_EventTile_content .markdown-body a { color: $accent-color; } From 69f5833c9f648ea1a9497336b4124974e23847b7 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Mon, 24 Apr 2017 16:05:10 +0100 Subject: [PATCH 05/16] Prevent long room names/topics from pushing UI of the screen This was causing the "save" button in RoomSettings to be obscured when room names were set to long strings without spaces Fixes https://github.com/vector-im/riot-web/issues/1729 --- .../vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss index 4affc994..5150d8cf 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss @@ -31,6 +31,7 @@ limitations under the License. margin-left: -2px; order: 1; flex: 1; + overflow: hidden; } .mx_RoomHeader_spinner { From 4dd6ee681d3032f7d7a3d58e8a88ea07017e420f Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Tue, 25 Apr 2017 00:14:18 +0100 Subject: [PATCH 06/16] fix /config.json in .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0978bc56..c5826b78 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,4 @@ npm-debug.log electron/dist electron/pub -config.json +/config.json From e24ef2bb5cbbcaa8a4541465b98a7f0793200979 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 25 Apr 2017 10:18:17 +0100 Subject: [PATCH 07/16] Warn when exiting due to single-instance This lost me a fair bit of time trying to figure out why Riot was starting and then immediately quitting. --- electron/src/electron-main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/electron/src/electron-main.js b/electron/src/electron-main.js index e6ffffac..a1fc9c1a 100644 --- a/electron/src/electron-main.js +++ b/electron/src/electron-main.js @@ -171,6 +171,7 @@ const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirector }); if (shouldQuit) { + console.log("Other instance detected: exiting"); electron.app.quit() } From 78cabed0bfb9d9815dce54707bf615cd7ae5f50a Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 25 Apr 2017 16:24:00 +0100 Subject: [PATCH 08/16] Modify CSS for matrix-org/matrix-react-sdk#833 --- .../structures/_UserSettings.scss | 9 ++++++++ .../structures/login/_Login.scss | 22 ++++++------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss index 9f33e1bc..739ac88a 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss @@ -176,6 +176,15 @@ limitations under the License. cursor: pointer; } +.mx_UserSettings_phoneSection { + display:table; +} + +.mx_UserSettings_phoneCountry { + width: 70px; + display: table-cell; +} + input.mx_UserSettings_phoneNumberField { margin-left: 3px; width: 172px; diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss index 12430480..93173ed3 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss @@ -179,11 +179,11 @@ limitations under the License. align-self: flex-end; } -.mx_Login_username_group { +.mx_Login_field_group { display: flex; } -.mx_Login_username_prefix { +.mx_Login_field_prefix { height: 33px; padding: 0px 5px; line-height: 33px; @@ -196,7 +196,7 @@ limitations under the License. text-align: center; } -.mx_Login_username_suffix { +.mx_Login_field_suffix { height: 33px; padding: 0px 5px; line-height: 33px; @@ -214,7 +214,9 @@ limitations under the License. flex-shrink: 1; min-width: 0px; border-radius: 3px; - /* The "@" is always prefixed, so no rounded corners */ +} + +.mx_Login_field_has_prefix { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } @@ -224,13 +226,8 @@ limitations under the License. border-bottom-right-radius: 0px; } -.mx_Login_phoneSection { - display: table; -} - .mx_Login_phoneCountry { - display: table-cell; - width: 70px; + margin-bottom: 14px; } .mx_Login_phoneCountry .mx_Dropdown_option { @@ -246,8 +243,3 @@ limitations under the License. margin: 4px; vertical-align: top; } - -.mx_Login_phoneNumberField { - width: 210px; - margin-left: 3px; -} From 7b3719bc3c8056660144ef61c180e9f4373c3ae6 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 26 Apr 2017 16:27:25 +0100 Subject: [PATCH 09/16] Remove unused `placeholder` prop on RoomDropTarget --- src/components/views/rooms/RoomDropTarget.js | 20 ++++++------------- .../views/rooms/_RoomDropTarget.scss | 5 ----- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/components/views/rooms/RoomDropTarget.js b/src/components/views/rooms/RoomDropTarget.js index 1c5eb3c1..f5ca4f01 100644 --- a/src/components/views/rooms/RoomDropTarget.js +++ b/src/components/views/rooms/RoomDropTarget.js @@ -22,20 +22,12 @@ module.exports = React.createClass({ displayName: 'RoomDropTarget', render: function() { - if (this.props.placeholder) { - return ( -
+ return ( +
+
+ { this.props.label }
- ); - } - else { - return ( -
-
- { this.props.label } -
-
- ); - } +
+ ); } }); diff --git a/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss b/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss index e0a50a95..08229e37 100644 --- a/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss +++ b/src/skins/vector/css/vector-web/views/rooms/_RoomDropTarget.scss @@ -33,11 +33,6 @@ limitations under the License. margin-left: 10px; } -.mx_RoomDropTarget_placeholder { - padding-top: 1px; - padding-bottom: 1px; -} - .mx_RoomDropTarget_label { position: relative; margin-top: 3px; From 44d0e7dcba2c2261be9b3730f0000b49b357d4a6 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Wed, 26 Apr 2017 18:00:51 +0100 Subject: [PATCH 10/16] Fix emote RRs alignment --- .../vector/css/matrix-react-sdk/views/rooms/_EventTile.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss index 5adf016f..cbd71422 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss @@ -218,8 +218,8 @@ limitations under the License. } .mx_EventTile_continuation .mx_EventTile_readAvatars, -.mx_EventTile_info .mx_EventTile_readAvatars -{ +.mx_EventTile_info .mx_EventTile_readAvatars, +.mx_EventTile_emote .mx_EventTile_readAvatars { top: 7px; } From e6f694307d7ee176fdda81722766cabe234fa3a9 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Thu, 27 Apr 2017 16:46:14 +0100 Subject: [PATCH 11/16] add word-break to RoomDirectory --- src/skins/vector/css/vector-web/structures/_RoomDirectory.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss index 6e508ec7..4acdd244 100644 --- a/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss +++ b/src/skins/vector/css/vector-web/structures/_RoomDirectory.scss @@ -21,6 +21,7 @@ limitations under the License. margin-right: auto; margin-bottom: 12px; color: $primary-fg-color; + word-break: break-word; display: flex; From afb4b79d81e3159c4d9507874a64acc1629cb560 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Thu, 27 Apr 2017 18:04:41 +0100 Subject: [PATCH 12/16] Improve Room Directory Look & Feel By adding an icon next to the title. Requires https://github.com/matrix-org/matrix-react-sdk/pull/848 --- src/components/structures/RoomDirectory.js | 2 +- .../css/matrix-react-sdk/views/rooms/_RoomHeader.scss | 6 ++++++ .../vector/css/vector-web/structures/_RoomDirectory.scss | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js index f8a3d9e9..cdf8d19e 100644 --- a/src/components/structures/RoomDirectory.js +++ b/src/components/structures/RoomDirectory.js @@ -548,7 +548,7 @@ module.exports = React.createClass({ const DirectorySearchBox = sdk.getComponent('elements.DirectorySearchBox'); return (
- +
Date: Wed, 26 Apr 2017 19:00:07 +0100 Subject: [PATCH 13/16] Make left panel more friendly to new users https://github.com/vector-im/riot-web/issues/3609 --- src/components/structures/RoomSubList.js | 14 +++++++----- .../views/rooms/_RoomList.scss | 22 +++++++++++++++++++ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js index 577dac9c..fde35b12 100644 --- a/src/components/structures/RoomSubList.js +++ b/src/components/structures/RoomSubList.js @@ -82,6 +82,7 @@ var RoomSubList = React.createClass({ incomingCall: React.PropTypes.object, onShowMoreRooms: React.PropTypes.func, searchFilter: React.PropTypes.string, + emptyContent: React.PropTypes.node, // content shown if the list is empty }, getInitialState: function() { @@ -468,16 +469,18 @@ var RoomSubList = React.createClass({ render: function() { var connectDropTarget = this.props.connectDropTarget; - var RoomDropTarget = sdk.getComponent('rooms.RoomDropTarget'); var TruncatedList = sdk.getComponent('elements.TruncatedList'); var label = this.props.collapsed ? null : this.props.label; //console.log("render: " + JSON.stringify(this.state.sortedList)); - var target; - if (this.state.sortedList.length == 0 && this.props.editable) { - target = ; + let content; + if (this.state.sortedList.length == 0) { + //content = ; + content = this.props.emptyContent; + } else { + content = this.makeRoomTiles(); } var roomCount = this.props.list.length > 0 ? this.props.list.length : ''; @@ -497,8 +500,7 @@ var RoomSubList = React.createClass({ if (!this.state.hidden) { subList = - { target } - { this.makeRoomTiles() } + { content } ; } else { diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss index 110dcd5b..bc699ae7 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +Copyright 2107 Vector Creations Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -37,3 +38,24 @@ limitations under the License. .mx_RoomList_scrollbar .gm-scrollbar.-vertical { z-index: 6; } + +.mx_RoomList_greyedSubListLabel { + color: #a2a2a2; +} + +.mx_RoomList_emptySubListTip { + font-size: 13px; + margin-left: 18px; + margin-right: 18px; + margin-top: 8px; + margin-bottom: 7px; + padding: 5px; + border: 1px solid $accent-color; + color: $primary-fg-color; + background-color: $droptarget-bg-color; + border-radius: 4px; +} + +.mx_RoomList_butonPreview { + float: right; +} From 73fb2c859e2c60d843eb9107fd0d200b06520ee3 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 28 Apr 2017 11:20:55 +0100 Subject: [PATCH 14/16] Remove now-redundant grey CSS --- .../vector/css/matrix-react-sdk/views/rooms/_RoomList.scss | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss index bc699ae7..e51b64f0 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss @@ -39,10 +39,6 @@ limitations under the License. z-index: 6; } -.mx_RoomList_greyedSubListLabel { - color: #a2a2a2; -} - .mx_RoomList_emptySubListTip { font-size: 13px; margin-left: 18px; From 4eb0ca63a9e4cc12fb3131a57edccb7dc580fdc4 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 28 Apr 2017 11:22:05 +0100 Subject: [PATCH 15/16] Revert commits acciderntally put on develop --- src/components/structures/RoomSubList.js | 14 ++++++-------- .../views/rooms/_RoomList.scss | 18 ------------------ 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js index fde35b12..577dac9c 100644 --- a/src/components/structures/RoomSubList.js +++ b/src/components/structures/RoomSubList.js @@ -82,7 +82,6 @@ var RoomSubList = React.createClass({ incomingCall: React.PropTypes.object, onShowMoreRooms: React.PropTypes.func, searchFilter: React.PropTypes.string, - emptyContent: React.PropTypes.node, // content shown if the list is empty }, getInitialState: function() { @@ -469,18 +468,16 @@ var RoomSubList = React.createClass({ render: function() { var connectDropTarget = this.props.connectDropTarget; + var RoomDropTarget = sdk.getComponent('rooms.RoomDropTarget'); var TruncatedList = sdk.getComponent('elements.TruncatedList'); var label = this.props.collapsed ? null : this.props.label; //console.log("render: " + JSON.stringify(this.state.sortedList)); - let content; - if (this.state.sortedList.length == 0) { - //content = ; - content = this.props.emptyContent; - } else { - content = this.makeRoomTiles(); + var target; + if (this.state.sortedList.length == 0 && this.props.editable) { + target = ; } var roomCount = this.props.list.length > 0 ? this.props.list.length : ''; @@ -500,7 +497,8 @@ var RoomSubList = React.createClass({ if (!this.state.hidden) { subList = - { content } + { target } + { this.makeRoomTiles() } ; } else { diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss index e51b64f0..110dcd5b 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss @@ -1,6 +1,5 @@ /* Copyright 2015, 2016 OpenMarket Ltd -Copyright 2107 Vector Creations Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -38,20 +37,3 @@ limitations under the License. .mx_RoomList_scrollbar .gm-scrollbar.-vertical { z-index: 6; } - -.mx_RoomList_emptySubListTip { - font-size: 13px; - margin-left: 18px; - margin-right: 18px; - margin-top: 8px; - margin-bottom: 7px; - padding: 5px; - border: 1px solid $accent-color; - color: $primary-fg-color; - background-color: $droptarget-bg-color; - border-radius: 4px; -} - -.mx_RoomList_butonPreview { - float: right; -} From 67efb8bde264e3ea0823e40558d29dd89120c0c9 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Sat, 29 Apr 2017 00:00:29 +0100 Subject: [PATCH 16/16] Add date tooltip to timestamps --- src/components/views/messages/MessageTimestamp.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/messages/MessageTimestamp.js b/src/components/views/messages/MessageTimestamp.js index dda87767..ab910b05 100644 --- a/src/components/views/messages/MessageTimestamp.js +++ b/src/components/views/messages/MessageTimestamp.js @@ -25,7 +25,7 @@ module.exports = React.createClass({ render: function() { var date = new Date(this.props.ts); return ( - + { DateUtils.formatTime(date) } );