diff --git a/packages/rocketchat-ui-message/client/messageBox.js b/packages/rocketchat-ui-message/client/messageBox.js index 056c18daff7..6393ce98a0e 100644 --- a/packages/rocketchat-ui-message/client/messageBox.js +++ b/packages/rocketchat-ui-message/client/messageBox.js @@ -469,6 +469,8 @@ Template.messageBox.onRendered(function() { }).on('autogrow', () => { this.data && this.data.onResize && this.data.onResize(); }).focus()[0]; + + chatMessages[RocketChat.openedRoom].restoreText(RocketChat.openedRoom); }); Template.messageBox.onCreated(function() { diff --git a/packages/rocketchat-ui/client/lib/chatMessages.js b/packages/rocketchat-ui/client/lib/chatMessages.js index 858210ddf4d..f2571e149f8 100644 --- a/packages/rocketchat-ui/client/lib/chatMessages.js +++ b/packages/rocketchat-ui/client/lib/chatMessages.js @@ -379,6 +379,13 @@ this.ChatMessages = class ChatMessages { } } + restoreText(rid) { + const text = localStorage.getItem(`messagebox_${ rid }`); + if (typeof text === 'string') { + this.input.value = text; + } + } + keyup(rid, event) { let i; const input = event.currentTarget; @@ -407,6 +414,8 @@ this.ChatMessages = class ChatMessages { this.startTyping(rid, input); } + localStorage.setItem(`messagebox_${ rid }`, input.value); + return this.hasValue.set(input.value !== ''); } @@ -520,3 +529,12 @@ this.ChatMessages = class ChatMessages { return !this.hasValue.get(); } }; + + +RocketChat.callbacks.add('afterLogoutCleanUp', () => { + Object.keys(localStorage).forEach((item) => { + if (item.indexOf('messagebox_') === 0) { + localStorage.removeItem(item); + } + }); +}, RocketChat.callbacks.priority.MEDIUM, 'chatMessages-after-logout-cleanup');