diff --git a/imports/message-read-receipt/client/readReceipts.css b/imports/message-read-receipt/client/readReceipts.css new file mode 100644 index 00000000000..662cbedb9ae --- /dev/null +++ b/imports/message-read-receipt/client/readReceipts.css @@ -0,0 +1,22 @@ +.read-receipts__user { + display: flex; + padding: 8px 8px; + align-items: center; +} + +.read-receipts__name { + flex: 1 1 auto; + margin: 0 10px; + font-size: 16px; +} + +.read-receipts__time { + font-size: 80%; +} + +.read-receipts__user > .avatar { + width: 36px; + width: var(--sidebar-account-thumb-size); + height: 36px; + height: var(--sidebar-account-thumb-size); +} diff --git a/imports/message-read-receipt/client/readReceipts.html b/imports/message-read-receipt/client/readReceipts.html index dde1677a394..137b4a91516 100644 --- a/imports/message-read-receipt/client/readReceipts.html +++ b/imports/message-read-receipt/client/readReceipts.html @@ -1,8 +1,15 @@ diff --git a/imports/message-read-receipt/client/readReceipts.js b/imports/message-read-receipt/client/readReceipts.js index afc5506b6e3..b1a9cde2164 100644 --- a/imports/message-read-receipt/client/readReceipts.js +++ b/imports/message-read-receipt/client/readReceipts.js @@ -1,17 +1,21 @@ import { ReactiveVar } from 'meteor/reactive-var'; import moment from 'moment'; +import './readReceipts.css'; import './readReceipts.html'; Template.readReceipts.helpers({ receipts() { return Template.instance().readReceipts.get(); }, - user() { - return this.user.name || this.user.username; + displayName() { + return (RocketChat.settings.get('UI_Use_Real_Name') && this.user.name) || this.user.username; }, time() { return moment(this.ts).format('L LTS'); + }, + isLoading() { + return Template.instance().loading.get(); } }); @@ -23,7 +27,9 @@ Template.readReceipts.onCreated(function readReceiptsOnCreated() { Template.readReceipts.onRendered(function readReceiptsOnRendered() { this.loading.set(true); Meteor.call('getReadReceipts', { messageId: this.data.messageId }, (error, result) => { + if (!error) { + this.readReceipts.set(result); + } this.loading.set(false); - this.readReceipts.set(result); }); }); diff --git a/imports/message-read-receipt/server/api/methods/getReadReceipts.js b/imports/message-read-receipt/server/api/methods/getReadReceipts.js index 887c1a53f34..0e6684fa129 100644 --- a/imports/message-read-receipt/server/api/methods/getReadReceipts.js +++ b/imports/message-read-receipt/server/api/methods/getReadReceipts.js @@ -4,8 +4,17 @@ import { ReadReceipt } from '../../lib/ReadReceipt'; Meteor.methods({ getReadReceipts({ messageId }) { + if (!Meteor.userId()) { + throw new Meteor.Error('error-invalid-user', 'Invalid user', { method: 'getReadReceipts' }); + } + const message = RocketChat.models.Messages.findOneById(messageId); + const room = Meteor.call('canAccessRoom', message.rid, Meteor.userId()); + if (!room) { + throw new Meteor.Error('error-invalid-room', 'Invalid room', { method: 'getReadReceipts' }); + } + return ReadReceipt.getReceipts(message); } }); diff --git a/packages/rocketchat-theme/client/imports/components/modal.css b/packages/rocketchat-theme/client/imports/components/modal.css index 2242466f751..cfea0e5e591 100644 --- a/packages/rocketchat-theme/client/imports/components/modal.css +++ b/packages/rocketchat-theme/client/imports/components/modal.css @@ -50,6 +50,8 @@ } &__content { + position: relative; + display: flex; flex-direction: column; @@ -58,6 +60,8 @@ animation: dropdown-show 0.1s cubic-bezier(0.45, 0.05, 0.55, 0.95); align-items: stretch; + + min-height: 72px; } &__content-icon { diff --git a/packages/rocketchat-theme/server/colors.less b/packages/rocketchat-theme/server/colors.less index 5ef8cd9cd1e..e08ee358184 100755 --- a/packages/rocketchat-theme/server/colors.less +++ b/packages/rocketchat-theme/server/colors.less @@ -882,11 +882,15 @@ label.required::after { .main-content, .flex-tab { - .loading-animation > div { + .loading-animation > .bounce { background-color: @primary-font-color; } } +.loading-animation.loading-animation--primary > .bounce { + background-color: @primary-font-color; +} + @keyframes blink { from { color: @selection-color; diff --git a/packages/rocketchat-ui-master/client/loading.html b/packages/rocketchat-ui-master/client/loading.html index 8cfdfef28ff..273ed227426 100644 --- a/packages/rocketchat-ui-master/client/loading.html +++ b/packages/rocketchat-ui-master/client/loading.html @@ -1,7 +1,7 @@ diff --git a/packages/rocketchat-ui-master/public/loading.css b/packages/rocketchat-ui-master/public/loading.css index 73ad608bcda..42984694f28 100644 --- a/packages/rocketchat-ui-master/public/loading.css +++ b/packages/rocketchat-ui-master/public/loading.css @@ -12,7 +12,7 @@ justify-content: center; } -.loading-animation > div { +.loading-animation > .bounce { display: inline-block; width: 10px;