fix: add newsletter box
This commit is contained in:
@@ -15,10 +15,37 @@ class PushBox extends HTMLElement {
|
||||
|
||||
connectedCallback() {
|
||||
this.render();
|
||||
// Use requestAnimationFrame to ensure slots are assigned
|
||||
requestAnimationFrame(() => {
|
||||
this.updateLogoVisibility();
|
||||
});
|
||||
}
|
||||
|
||||
attributeChangedCallback() {
|
||||
this.render();
|
||||
requestAnimationFrame(() => {
|
||||
this.updateLogoVisibility();
|
||||
});
|
||||
}
|
||||
|
||||
updateLogoVisibility() {
|
||||
const logoSlot = this.shadowRoot?.querySelector('slot[name="logo"]');
|
||||
const logoWrapper = this.shadowRoot?.querySelector(".logo-wrapper");
|
||||
|
||||
if (logoSlot && logoWrapper) {
|
||||
const assignedNodes = logoSlot.assignedNodes();
|
||||
const hasContent =
|
||||
assignedNodes.length > 0 &&
|
||||
assignedNodes.some((node) => {
|
||||
return node.nodeType === Node.ELEMENT_NODE && node.tagName === "IMG";
|
||||
});
|
||||
|
||||
if (!hasContent) {
|
||||
logoWrapper.classList.add("hidden");
|
||||
} else {
|
||||
logoWrapper.classList.remove("hidden");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
get backgroundColor() {
|
||||
@@ -53,6 +80,10 @@ class PushBox extends HTMLElement {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.logo-wrapper.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.logo-wrapper ::slotted(img) {
|
||||
width: 104px;
|
||||
height: auto;
|
||||
@@ -73,6 +104,12 @@ class PushBox extends HTMLElement {
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.cta-wrapper ::slotted(.cta-buttons) {
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
</style>
|
||||
<div class="push-box">
|
||||
<div class="logo-wrapper">
|
||||
|
||||
Reference in New Issue
Block a user