From 151923cd89bca1fea813f66668254431bf3edb77 Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio@bekerle.com>
Date: Thu, 14 Jan 2021 15:22:06 +0100
Subject: [PATCH] Add and use method sendSetPropertyEvent
 (dbp/apps/signature#32)

---
 packages/language-select/src/language-select.js | 12 ++++--------
 packages/provider/src/adapter-lit-element.js    | 10 ++++++++++
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/packages/language-select/src/language-select.js b/packages/language-select/src/language-select.js
index bce4a91f..772163c5 100644
--- a/packages/language-select/src/language-select.js
+++ b/packages/language-select/src/language-select.js
@@ -1,11 +1,12 @@
-import {html, css, LitElement} from 'lit-element';
+import {html, css} from 'lit-element';
 import {i18n} from './i18n.js';
 import * as commonStyles from '@dbp-toolkit/common/styles';
+import {AdapterLitElement} from "@dbp-toolkit/provider/src/adapter-lit-element";
 
 /**
  * Emits a dbp-language-changed event where event.detail.lang is the new selected language
  */
-export class LanguageSelect extends LitElement {
+export class LanguageSelect extends AdapterLitElement {
 
     constructor() {
         super();
@@ -61,12 +62,7 @@ export class LanguageSelect extends LitElement {
             this.dispatchEvent(event);
 
             // tell a dbp-provider to update the "lang" property
-            event = new CustomEvent("set-property", {
-                bubbles: true,
-                composed: true,
-                detail: {'name': 'lang', 'value': value}
-            });
-            this.dispatchEvent(event);
+            this.sendSetPropertyEvent('lang', value);
 
             // Unlike other cases we use the next language for the translations so that
             // users not knowing the current language can understand it.
diff --git a/packages/provider/src/adapter-lit-element.js b/packages/provider/src/adapter-lit-element.js
index e9dba576..c3287293 100644
--- a/packages/provider/src/adapter-lit-element.js
+++ b/packages/provider/src/adapter-lit-element.js
@@ -129,6 +129,16 @@ export class AdapterLitElement extends LitElement {
         // console.trace();
     }
 
+    sendSetPropertyEvent(name, value) {
+        const event = new CustomEvent("set-property", {
+            bubbles: true,
+            composed: true,
+            detail: {'name': name, 'value': value}
+        });
+
+        return this.dispatchEvent(event);
+    }
+
     // update(changedProperties) {
     //     changedProperties.forEach((oldValue, propName) => {
     //         switch(propName) {
-- 
GitLab