From cbd8fe2872fb28de3dc263565bb943804ba956a7 Mon Sep 17 00:00:00 2001 From: Eugen Neuber <eugen.neuber@tugraz.at> Date: Wed, 13 Jan 2021 10:58:00 +0100 Subject: [PATCH] Add language selector to demo (update attribute only if value changed) --- packages/provider/src/dbp-provider-demo.js | 5 +++++ packages/provider/src/provider.js | 17 ++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/provider/src/dbp-provider-demo.js b/packages/provider/src/dbp-provider-demo.js index 7d337e8b..9db89214 100644 --- a/packages/provider/src/dbp-provider-demo.js +++ b/packages/provider/src/dbp-provider-demo.js @@ -5,6 +5,8 @@ import {AuthKeycloak, LoginButton} from '@dbp-toolkit/auth'; import * as commonUtils from '@dbp-toolkit/common/utils'; import * as commonStyles from '@dbp-toolkit/common/styles'; import {Provider} from '@dbp-toolkit/provider'; +import {LanguageSelect} from '@dbp-toolkit/language-select'; + class ProviderDemo extends ScopedElementsMixin(LitElement) { @@ -18,6 +20,7 @@ class ProviderDemo extends ScopedElementsMixin(LitElement) { return { 'dbp-auth-keycloak': AuthKeycloak, 'dbp-login-button': LoginButton, + 'dbp-language-select': LanguageSelect, 'dbp-provider': Provider, 'dbp-consumer': DemoConsumer, }; @@ -51,6 +54,7 @@ class ProviderDemo extends ScopedElementsMixin(LitElement) { <dbp-provider id="root" blah="777" availability="global" + lang="de" ><section class="section"> <p>Provider <em>"root"</em> is the top most in hierarchy:</p> <pre> @@ -62,6 +66,7 @@ class ProviderDemo extends ScopedElementsMixin(LitElement) { <div class="container"> <dbp-auth-keycloak lang="${this.lang}" url="https://auth-dev.tugraz.at/auth" realm="tugraz" client-id="auth-dev-mw-frontend-local" load-person try-login></dbp-auth-keycloak> <dbp-login-button lang="${this.lang}" show-image></dbp-login-button> + <dbp-language-select></dbp-language-select> </div> <dbp-provider id="demo" bc="blue" diff --git a/packages/provider/src/provider.js b/packages/provider/src/provider.js index 342d59f3..d8d0f932 100644 --- a/packages/provider/src/provider.js +++ b/packages/provider/src/provider.js @@ -75,13 +75,16 @@ export class Provider extends HTMLElement { for(const mutation of mutationsList) { if (mutation.type === 'attributes') { const name = mutation.attributeName; - console.log('Provider (' + that.id() + ') observed attribute "' + name + '" changed'); - that[name] = that.getAttribute(name); - that.callbackStore.forEach(item => { - if (item.name === name) { - item.callback(value); - } - }); + const value = that.getAttribute(name); + if (that[name] !== value) { + console.log('Provider (' + that.id() + ') observed attribute "' + name + '" changed'); + that[name] = value; + that.callbackStore.forEach(item => { + if (item.name === name) { + item.callback(value); + } + }); + } } } }; -- GitLab