UNPKG

@acorel/contentful-integration

Version:
35 lines (28 loc) 1.09 kB
import {CmsService, ComponentDecorator, ContentSlotComponentData} from "@spartacus/core"; import {Injectable, Renderer2} from "@angular/core"; import {take, tap} from "rxjs/operators"; @Injectable({ providedIn: 'root', }) export class ContentfulComponentDecorator extends ComponentDecorator { constructor(private cmsService: CmsService) { super(); } decorate(element: Element, renderer: Renderer2, component?: ContentSlotComponentData): void { if (component?.uid) { let cmsComponent = this.cmsService.getComponentData(component?.uid); this.cmsService.getComponentData(component.uid).subscribe(component => { console.log('setting classes', component?.styleClasses); if (component?.styleClasses) { renderer.setAttribute(element, "class", component.styleClasses); } }) } if (component?.graphqlComponent) { if (component.uid) { renderer.setAttribute(element, "data-contentful-entry-id", component.uid); renderer.setAttribute(element, "data-contentful-field-id", "dummy"); } } } }