From b468abd1f0cfb66ed8397896227a682feb4759da Mon Sep 17 00:00:00 2001 From: Gery Hirschfeld Date: Thu, 19 Oct 2023 20:58:08 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(angular):=20use=20EventEmitt?= =?UTF-8?q?er=20again=20(#1077)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(angular): use EventEmitter again * chore: format files --- .changeset/witty-months-whisper.md | 5 +++++ .../components/bal-data/bal-data-value/bal-data-value.tsx | 5 +++-- .../output-targets/angular/angular-component-lib/utils.ts | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 .changeset/witty-months-whisper.md diff --git a/.changeset/witty-months-whisper.md b/.changeset/witty-months-whisper.md new file mode 100644 index 0000000000..aadf8b0071 --- /dev/null +++ b/.changeset/witty-months-whisper.md @@ -0,0 +1,5 @@ +--- +'@baloise/design-system-components-angular': patch +--- + +Utilize an Angular EventEmitter for output instead of RX.JS fromEvent, as it tends to trigger events twice diff --git a/packages/components/src/components/bal-data/bal-data-value/bal-data-value.tsx b/packages/components/src/components/bal-data/bal-data-value/bal-data-value.tsx index f4c4872cb9..a42c9907fb 100644 --- a/packages/components/src/components/bal-data/bal-data-value/bal-data-value.tsx +++ b/packages/components/src/components/bal-data/bal-data-value/bal-data-value.tsx @@ -38,12 +38,13 @@ export class DataValue { */ @Event() balBlur!: EventEmitter - onClickHandler(ev: MouseEvent) { - this.balClick.emit(ev) + private onClickHandler = (ev: MouseEvent) => { const input = this.el.querySelector('bal-input') if (!isNil(input)) { input.setFocus() } + + this.balClick.emit(ev) } render() { diff --git a/packages/output-targets/angular/angular-component-lib/utils.ts b/packages/output-targets/angular/angular-component-lib/utils.ts index 3d1a6e22b8..638bb337d2 100644 --- a/packages/output-targets/angular/angular-component-lib/utils.ts +++ b/packages/output-targets/angular/angular-component-lib/utils.ts @@ -1,6 +1,6 @@ /* eslint-disable */ /* tslint:disable */ -import { fromEvent } from 'rxjs' +import { EventEmitter } from '@angular/core' export const proxyInputs = (Cmp: any, inputs: string[]) => { const Prototype = Cmp.prototype @@ -28,8 +28,8 @@ export const proxyMethods = (Cmp: any, methods: string[]) => { }) } -export const proxyOutputs = (instance: any, el: any, events: string[]) => { - events.forEach(eventName => (instance[eventName] = fromEvent(el, eventName))) +export const proxyOutputs = (instance: any, _el: any, events: string[]) => { + events.forEach(eventName => (instance[eventName] = new EventEmitter())) } export const defineCustomElement = (tagName: string, customElement: any) => {