Browse Source

Don't assume that window.converse is always defined

JC Brand 5 năm trước cách đây
mục cha
commit
fa30563937
2 tập tin đã thay đổi với 7 bổ sung4 xóa
  1. 3 2
      src/converse-emoji-views.js
  2. 4 2
      src/headless/converse-core.js

+ 3 - 2
src/converse-emoji-views.js

@@ -4,13 +4,14 @@
  * @license Mozilla Public License (MPLv2)
  */
 import "@converse/headless/converse-emoji";
-import { View } from "skeletor.js/src/view";
-import { debounce, find } from "lodash";
 import DOMNavigator from "./dom-navigator";
 import bootstrap from "bootstrap.native";
 import emoji_picker from "templates/emoji_picker.js";
 import sizzle from 'sizzle';
 import tpl_emoji_button from "templates/emoji_button.html";
+import { View } from "skeletor.js/src/view";
+import { converse } from '@converse/headless/converse-core';
+import { debounce, find } from "lodash";
 
 const u = converse.env.utils;
 

+ 4 - 2
src/headless/converse-core.js

@@ -1737,7 +1737,7 @@ function setUnloadEvent () {
     }
 }
 
-export const converse = window.converse;
+export const converse = window.converse || {};
 
 
 /**
@@ -1912,4 +1912,6 @@ Object.assign(converse, {
  * @event converse-loaded
  * @example window.addEventListener('converse-loaded', () => converse.initialize());
  */
-window.dispatchEvent(new CustomEvent('converse-loaded'));
+const ev = new CustomEvent('converse-loaded')
+ev.converse = converse;
+window.dispatchEvent(ev);