import type { GroupContent } from "@prismicio/types-internal/lib/content" import type { Group as GroupField } from "@prismicio/types-internal/lib/customtypes" import type { Renderer } from "../models" import type { Group as GroupFetch } from "../models/fetch" import type RenderContext from "../models/RenderContext" import StaticWidgetRenderer from "./StaticWidgetRenderer" const GroupRenderer: (ctx: RenderContext) => Renderer = (ctx) => ({ renderV1(content, fetch) { return { type: "Group", value: content.value.map((items) => { return StaticWidgetRenderer(ctx).renderV1Object(items.value, fetch?.fields) }), } }, renderV2(groupDef, content, fetch) { return content.value.map((items) => { return StaticWidgetRenderer(ctx).renderV2Object( items.value, fetch?.fields, groupDef.config?.fields || {}, { withFetch: "filter", }, { default: "default", withFetch: "default", withFetchField: "default", }, ) }) }, renderDefault() { return [] }, renderMocks(def, content) { return content.value.map((items) => { if (!def.config?.fields) return {} return StaticWidgetRenderer(ctx).renderMocksObject(items.value, def.config?.fields) }) }, }) export default GroupRenderer