Skip to content

Commit

Permalink
Merge branch 'release/v2.16.0' into fix/card-wraper-div-height
Browse files Browse the repository at this point in the history
  • Loading branch information
m4olivei authored Dec 6, 2024
2 parents 350838d + 32a8214 commit 28d76f9
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 15 deletions.
36 changes: 22 additions & 14 deletions packages/web-components/src/components/button/button.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ class C4DButton extends CTAMixin(StableSelectorMixin(CDSButton)) {
@query('a')
_linkNode;

@property()
iconDiv;
@query(`slot[name='icon']`)
iconSlot?: HTMLElement;

@property()
span;
Expand Down Expand Up @@ -135,18 +135,26 @@ class C4DButton extends CTAMixin(StableSelectorMixin(CDSButton)) {

updated(changedProperties) {
super.updated(changedProperties);

if (changedProperties.has('ctaType')) {
if (!this.iconDiv) {
this.iconDiv = this.shadowRoot?.querySelector("slot[name='icon']");
}

const { iconDiv } = this;

iconDiv.querySelector('svg')?.remove();
iconDiv.innerHTML = this._renderButtonIcon();
iconDiv
?.querySelector('svg')
const updateIconForProperties = [
'ctaType',
'disabled',
'tooltipText',
'href',
];
const { iconSlot } = this;

// Note that the parent may render a different <slot name="icon">
// based on changes to either disabled, tooltipText, or href, so we make
// sure to re-render the icon if any of those change, in addition to the
// ctaType.
if (
iconSlot &&
updateIconForProperties.some((prop) => changedProperties.has(prop))
) {
iconSlot.querySelector('svg')?.remove();
iconSlot.innerHTML = this._renderButtonIcon();
iconSlot
.querySelector('svg')
?.classList.add(`${prefix}--card__cta`, `${c4dPrefix}-ce--cta__icon`);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class NoticeChoice extends StableSelectorMixin(LitElement) {
@property({ type: String, attribute: 'language' })
language = 'en';

@property({ type: String, attribute: 'currentLanguage' })
@property({ type: String, attribute: 'current-language' })
currentLanguage = 'en';

@property({ type: String, attribute: 'terms-condition-link' })
Expand Down

0 comments on commit 28d76f9

Please sign in to comment.