import { EmptyContentType, SimpleSliceContent } from "@prismicio/types-internal/lib/content" import type { LegacySlice } from "@prismicio/types-internal/lib/customtypes" import * as O from "fp-ts/lib/Option" import type { RenderContext } from "../../models" import type { GroupOrField } from "../../models/fetch" import type { SliceRenderer } from "../../models/Renderer" import StaticWidgetRenderer from "../StaticWidgetRenderer" const SimpleSliceRenderer: (ctx: RenderContext) => SliceRenderer = ( ctx, ) => ({ renderV1(content: SimpleSliceContent, fetch: GroupOrField | undefined): unknown { if (content.__TYPE__ === EmptyContentType) { return O.none } return O.some({ value: StaticWidgetRenderer(ctx).renderV1(content, fetch), }) }, renderV2(def: LegacySlice, content: SimpleSliceContent, fetch: GroupOrField | undefined): unknown { if (content.__TYPE__ === EmptyContentType) { return O.none } return O.some({ value: StaticWidgetRenderer(ctx).renderV2(def, content, fetch), }) }, renderDefault(_def: LegacySlice): unknown { return {} }, renderMocks(def: LegacySlice, content: SimpleSliceContent): unknown { if (content.__TYPE__ === EmptyContentType) { return O.none } return O.some({ value: StaticWidgetRenderer(ctx).renderMocks(def, content), }) }, }) export default SimpleSliceRenderer