From 919c03e8d387c1c858340508075a43709bdba9d6 Mon Sep 17 00:00:00 2001 From: Marcos Defendi Date: Tue, 13 Nov 2018 07:32:24 -0200 Subject: [PATCH 1/2] Exposing ChatMessages global variable from rocketchat-ui --- packages/rocketchat-ui/client/lib/chatMessages.js | 2 +- packages/rocketchat-ui/package.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/rocketchat-ui/client/lib/chatMessages.js b/packages/rocketchat-ui/client/lib/chatMessages.js index 57e9c6b496a0..130168a2f16e 100644 --- a/packages/rocketchat-ui/client/lib/chatMessages.js +++ b/packages/rocketchat-ui/client/lib/chatMessages.js @@ -20,7 +20,7 @@ Meteor.startup(() => { }); }); -this.ChatMessages = class ChatMessages { +ChatMessages = class ChatMessages { //eslint-disable-line constructor() { this.saveTextMessageBox = _.debounce((rid, value) => { // eslint diff --git a/packages/rocketchat-ui/package.js b/packages/rocketchat-ui/package.js index 6ce477dc761e..a0c80aeabdd5 100644 --- a/packages/rocketchat-ui/package.js +++ b/packages/rocketchat-ui/package.js @@ -152,4 +152,5 @@ Package.onUse(function(api) { api.export('ChatRoom', 'client'); api.export('ChatSubscription', 'client'); api.export('RoomRoles', 'client'); + api.export('ChatMessages', 'client'); }); From b8939cc0edb92fd0841269f9348ee2b07a31b10e Mon Sep 17 00:00:00 2001 From: Marcos Defendi Date: Tue, 13 Nov 2018 07:33:50 -0200 Subject: [PATCH 2/2] Convert rocketchat-emoji to main module structure --- packages/rocketchat-emoji/client/emojiButton.js | 5 +++-- packages/rocketchat-emoji/client/emojiParser.js | 3 ++- packages/rocketchat-emoji/client/emojiPicker.js | 4 +++- .../rocketchat-emoji/client/function-isSet.js | 7 ++----- packages/rocketchat-emoji/client/index.js | 12 ++++++++++++ packages/rocketchat-emoji/client/keyboardFix.js | 1 + .../rocketchat-emoji/client/lib/EmojiPicker.js | 5 ++++- .../client/lib/emojiRenderer.js | 8 ++++---- .../{client => lib}/rocketchat.js | 2 ++ packages/rocketchat-emoji/package.js | 17 +++-------------- packages/rocketchat-emoji/server/index.js | 1 + 11 files changed, 37 insertions(+), 28 deletions(-) create mode 100644 packages/rocketchat-emoji/client/index.js rename packages/rocketchat-emoji/{client => lib}/rocketchat.js (80%) create mode 100644 packages/rocketchat-emoji/server/index.js diff --git a/packages/rocketchat-emoji/client/emojiButton.js b/packages/rocketchat-emoji/client/emojiButton.js index 7b80b6263a95..e10c907fd65b 100644 --- a/packages/rocketchat-emoji/client/emojiButton.js +++ b/packages/rocketchat-emoji/client/emojiButton.js @@ -1,5 +1,6 @@ -/* globals Template chatMessages*/ import { Meteor } from 'meteor/meteor'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { Template } from 'meteor/templating'; Template.messageBox.events({ 'click .emoji-picker-icon'(event) { @@ -14,7 +15,7 @@ Template.messageBox.events({ RocketChat.EmojiPicker.close(); } else { RocketChat.EmojiPicker.open(event.currentTarget, (emoji) => { - const { input } = chatMessages[RocketChat.openedRoom]; + const { input } = window.chatMessages[RocketChat.openedRoom]; const emojiValue = `:${ emoji }:`; diff --git a/packages/rocketchat-emoji/client/emojiParser.js b/packages/rocketchat-emoji/client/emojiParser.js index bf490d1219d2..f17aa776e994 100644 --- a/packages/rocketchat-emoji/client/emojiParser.js +++ b/packages/rocketchat-emoji/client/emojiParser.js @@ -1,5 +1,6 @@ -/* globals isSetNotNull */ import { Meteor } from 'meteor/meteor'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { isSetNotNull } from './function-isSet'; import s from 'underscore.string'; /* diff --git a/packages/rocketchat-emoji/client/emojiPicker.js b/packages/rocketchat-emoji/client/emojiPicker.js index 0c559cf8e52e..342a2f08391e 100644 --- a/packages/rocketchat-emoji/client/emojiPicker.js +++ b/packages/rocketchat-emoji/client/emojiPicker.js @@ -1,6 +1,8 @@ -/* globals Template, isSetNotNull */ import { ReactiveVar } from 'meteor/reactive-var'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { Template } from 'meteor/templating'; import { TAPi18n } from 'meteor/tap:i18n'; +import { isSetNotNull } from './function-isSet'; const emojiCategories = {}; /** diff --git a/packages/rocketchat-emoji/client/function-isSet.js b/packages/rocketchat-emoji/client/function-isSet.js index 4181bb827f2f..1dd2e6e7e8a0 100644 --- a/packages/rocketchat-emoji/client/function-isSet.js +++ b/packages/rocketchat-emoji/client/function-isSet.js @@ -1,6 +1,5 @@ -/* globals isSet:true, isSetNotNull:true */ // http://stackoverflow.com/a/26990347 function isSet() from Gajus -isSet = function(fn) { +export const isSet = function(fn) { let value; try { value = fn(); @@ -11,7 +10,7 @@ isSet = function(fn) { } }; -isSetNotNull = function(fn) { +export const isSetNotNull = function(fn) { let value; try { value = fn(); @@ -21,5 +20,3 @@ isSetNotNull = function(fn) { return value !== null && value !== undefined; } }; - -/* exported isSet, isSetNotNull */ diff --git a/packages/rocketchat-emoji/client/index.js b/packages/rocketchat-emoji/client/index.js new file mode 100644 index 000000000000..65170c76398a --- /dev/null +++ b/packages/rocketchat-emoji/client/index.js @@ -0,0 +1,12 @@ +import '../lib/rocketchat'; +import './emojiParser'; +import './emojiPicker.html'; +import './emojiPicker'; +import './lib/EmojiPicker'; +import { renderEmoji } from './lib/emojiRenderer'; +import './emojiButton'; +import './keyboardFix'; + +export { + renderEmoji, +}; diff --git a/packages/rocketchat-emoji/client/keyboardFix.js b/packages/rocketchat-emoji/client/keyboardFix.js index a08e8bd61ac3..c50f6bc2485b 100644 --- a/packages/rocketchat-emoji/client/keyboardFix.js +++ b/packages/rocketchat-emoji/client/keyboardFix.js @@ -1,5 +1,6 @@ /* global device */ import { Meteor } from 'meteor/meteor'; +import { RocketChat } from 'meteor/rocketchat:lib'; if (Meteor.isCordova) { window.addEventListener('native.keyboardshow', function() { diff --git a/packages/rocketchat-emoji/client/lib/EmojiPicker.js b/packages/rocketchat-emoji/client/lib/EmojiPicker.js index fcb99084508f..6644789d3888 100644 --- a/packages/rocketchat-emoji/client/lib/EmojiPicker.js +++ b/packages/rocketchat-emoji/client/lib/EmojiPicker.js @@ -1,4 +1,7 @@ -/* globals Blaze, Template */ +import { RocketChat } from 'meteor/rocketchat:lib'; +import { Blaze } from 'meteor/blaze'; +import { Template } from 'meteor/templating'; + import _ from 'underscore'; RocketChat.EmojiPicker = { diff --git a/packages/rocketchat-emoji/client/lib/emojiRenderer.js b/packages/rocketchat-emoji/client/lib/emojiRenderer.js index a14d00c7819d..15731c2fb704 100644 --- a/packages/rocketchat-emoji/client/lib/emojiRenderer.js +++ b/packages/rocketchat-emoji/client/lib/emojiRenderer.js @@ -1,8 +1,10 @@ -/* globals HTML, isSetNotNull, renderEmoji:true */ import { Blaze } from 'meteor/blaze'; import { Template } from 'meteor/templating'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { isSetNotNull } from '../function-isSet'; +import { HTML } from 'meteor/htmljs'; -renderEmoji = function(emoji) { +export const renderEmoji = function(emoji) { if (isSetNotNull(() => RocketChat.emoji.list[emoji].emojiPackage)) { const { emojiPackage } = RocketChat.emoji.list[emoji]; return RocketChat.emoji.packages[emojiPackage].render(emoji); @@ -22,5 +24,3 @@ Template.registerHelper('renderEmoji', new Template('renderEmoji', function() { return ''; })); - -/* exported renderEmoji */ diff --git a/packages/rocketchat-emoji/client/rocketchat.js b/packages/rocketchat-emoji/lib/rocketchat.js similarity index 80% rename from packages/rocketchat-emoji/client/rocketchat.js rename to packages/rocketchat-emoji/lib/rocketchat.js index 870580c1de01..c0bcf7a3f002 100644 --- a/packages/rocketchat-emoji/client/rocketchat.js +++ b/packages/rocketchat-emoji/lib/rocketchat.js @@ -1,3 +1,5 @@ +import { RocketChat } from 'meteor/rocketchat:lib'; + RocketChat.emoji = { packages: { base: { diff --git a/packages/rocketchat-emoji/package.js b/packages/rocketchat-emoji/package.js index 62c06d91d998..a429f3abf01d 100644 --- a/packages/rocketchat-emoji/package.js +++ b/packages/rocketchat-emoji/package.js @@ -12,20 +12,9 @@ Package.onUse(function(api) { 'rocketchat:lib', 'rocketchat:theme', 'rocketchat:ui-message', + 'htmljs', ]); - api.addFiles('client/function-isSet.js', 'client'); - api.addFiles('client/rocketchat.js'); - - api.addFiles('client/emojiParser.js', 'client'); - - api.addFiles('client/emojiPicker.html', 'client'); - api.addFiles('client/emojiPicker.js', 'client'); - - api.addFiles('client/lib/emojiRenderer.js', 'client'); - api.addFiles('client/lib/EmojiPicker.js', 'client'); - api.addFiles('client/emojiButton.js', 'client'); - api.addFiles('client/keyboardFix.js', 'client'); - - api.export('renderEmoji'); + api.mainModule('client/index.js', 'client'); + api.mainModule('server/index.js', 'server'); }); diff --git a/packages/rocketchat-emoji/server/index.js b/packages/rocketchat-emoji/server/index.js new file mode 100644 index 000000000000..8e716d1f414f --- /dev/null +++ b/packages/rocketchat-emoji/server/index.js @@ -0,0 +1 @@ +import '../lib/rocketchat';