Skip to content

Commit

Permalink
feat(button): add signalId for click event
Browse files Browse the repository at this point in the history
  • Loading branch information
AliMD authored and njfamirm committed Feb 26, 2023
1 parent 98d015d commit fdde714
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
27 changes: 26 additions & 1 deletion ui/ui-kit/src/button/button.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import {css, customElement, html} from '@alwatr/element';
import {css, customElement, html, property} from '@alwatr/element';
import '@alwatr/icon';
import {eventTrigger} from '@alwatr/signal';

import {AlwatrSurface} from '../card/surface.js';

import type {ClickSignalType} from '@alwatr/type';

declare global {
interface HTMLElementTagNameMap {
'alwatr-button': AlwatrButton;
Expand Down Expand Up @@ -39,13 +42,35 @@ export class AlwatrButton extends AlwatrSurface {
`,
];

@property({attribute: 'signal-id'})
signalId?: string;

override connectedCallback(): void {
super.connectedCallback();
this.setAttribute('stated', '');
this.addEventListener('click', this._click);
}

override disconnectedCallback(): void {
super.disconnectedCallback();
this.removeEventListener('click', this._click);
}

override render(): unknown {
this._logger.logMethod('render');
return html`<slot>button</slot>`;
}

protected _click(event: MouseEvent): void {
this._logger.logMethodArgs('_click', {signalId: this.signalId});
if (this.signalId) {
eventTrigger.dispatch<ClickSignalType>(this.signalId, {
x: event.clientX,
y: event.clientY,
altKey: event.altKey,
ctrlKey: event.ctrlKey,
metaKey: event.metaKey,
});
}
}
}
2 changes: 1 addition & 1 deletion ui/ui-kit/src/button/icon-button.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ export class AlwatrStandardIconButton extends AlwatrSurface {
content?: IconButtonContent;

override connectedCallback(): void {
this.setAttribute('stated', '');
super.connectedCallback();
this.setAttribute('stated', '');
this.addEventListener('click', this._click);
}

Expand Down

0 comments on commit fdde714

Please sign in to comment.