From f5f2ebc05c3165efe95aac575abb27094e61833c Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Thu, 1 Jul 2021 17:37:34 +0200
Subject: [PATCH] typescript-example: one i18next instance per element

---
 packages/typescript-example/src/i18n.ts       |  6 +++--
 .../src/typescript-example.ts                 | 24 +++++++++----------
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/packages/typescript-example/src/i18n.ts b/packages/typescript-example/src/i18n.ts
index 498d9f03..975c1993 100644
--- a/packages/typescript-example/src/i18n.ts
+++ b/packages/typescript-example/src/i18n.ts
@@ -1,6 +1,8 @@
-import {createInstance} from '@dbp-toolkit/common/i18next.js';
+import {createInstance as _createInstance} from '@dbp-toolkit/common/i18next.js';
 
 import de from './i18n/de/translation.json';
 import en from './i18n/en/translation.json';
 
-export const i18n = createInstance({en: en, de: de}, 'de', 'en');
\ No newline at end of file
+export function createInstance() {
+    return _createInstance({en: en, de: de}, 'de', 'en');
+}
\ No newline at end of file
diff --git a/packages/typescript-example/src/typescript-example.ts b/packages/typescript-example/src/typescript-example.ts
index 60fe3c8c..a7c6503a 100644
--- a/packages/typescript-example/src/typescript-example.ts
+++ b/packages/typescript-example/src/typescript-example.ts
@@ -1,5 +1,5 @@
-import {html,LitElement,property} from 'lit-element';
-import {i18n} from './i18n';
+import {html,LitElement} from 'lit-element';
+import {createInstance} from './i18n';
 
 export class TypeScriptExample extends LitElement {
 
@@ -8,20 +8,20 @@ export class TypeScriptExample extends LitElement {
     constructor() {
         super();
 
-        this._i18n = i18n.cloneInstance();
+        this._i18n = createInstance();
+        this.lang = this._i18n.language;
     }
 
-    @property({type: String})
-    lang = '';
+    static get properties() {
+        return {
+          lang: {type: String}
+        };
+    }
 
     update(changedProperties) {
-        changedProperties.forEach((oldValue, propName) => {
-            switch (propName) {
-                case "lang":
-                    this._i18n.changeLanguage(this.lang);
-                    break;
-            }
-        });
+        if (changedProperties.has("lang")) {
+            this._i18n.changeLanguage(this.lang);
+        }
         super.update(changedProperties);
     }
 
-- 
GitLab