Sfoglia il codice sorgente

registry: avoid registering already registered custom elements

which throws and error and causes tests to fail
JC Brand 5 anni fa
parent
commit
de1cc396bb
1 ha cambiato i file con 9 aggiunte e 7 eliminazioni
  1. 9 7
      src/converse-registry.js

+ 9 - 7
src/converse-registry.js

@@ -1,18 +1,20 @@
-import { _converse } from "@converse/headless/converse-core";
+import { api } from "@converse/headless/converse-core";
 
 const registry = {};
 
-function define (componentName, componentClass) {
-    this.registry[componentName] = componentClass;
+function define (name, constructor) {
+    this.registry[name] = constructor;
 }
 
 function register () {
-    Object.keys(registry).map(componentName =>
-        window.customElements.define(componentName, registry[componentName])
-    );
+    Object.keys(registry).forEach(name => {
+        if (!customElements.get(name)) {
+            customElements.define(name, registry[name])
+        }
+    });
 }
 
-_converse.api.elements = {
+api.elements = {
     registry,
     define,
     register