UNPKG

@acorel/contentful-integration

Version:
35 lines (27 loc) 1.38 kB
import {CmsComponent, OccCmsComponentAdapter, PageContext} from "@spartacus/core"; import {Observable, of} from "rxjs"; import {Apollo} from "apollo-angular"; import {ContentfulLivePreviewService} from "./contentful-live-preview.service"; import {QueryOptions} from "@apollo/client/core"; import {Injectable} from "@angular/core"; import {GraphqlCmsComponentAdapter, GraphqlCmsIntegrationService} from "@acorel/graphql-integration"; @Injectable({ providedIn: 'root', }) export class ContentfulCmsComponentAdapter extends GraphqlCmsComponentAdapter { constructor(occCmsComponentAdapter: OccCmsComponentAdapter, graphqlCmsIntegrationService: GraphqlCmsIntegrationService, apollo: Apollo, private contentfulLivePreviewService :ContentfulLivePreviewService) { super(occCmsComponentAdapter, graphqlCmsIntegrationService, apollo); } override doQuery(id: string, pageContext: PageContext, query: QueryOptions) { if (this.contentfulLivePreviewService.isPreviewEnabled()) { let previewContent = this.contentfulLivePreviewService.previewContent(id, pageContext); if (previewContent) { return of(previewContent); } } return super.doQuery(id, pageContext, query); } override load<T extends CmsComponent>(id: string, pageContext: PageContext, fields?: string): Observable<T> { return super.load(id, pageContext, fields); } }