import type { LinkContent, MediaLinkContent } from "@prismicio/types-internal/lib/content" import type { LinkRenderer, LinkRendererOptions, MediaLinkDef } from "../../../models" const MediaLinkRenderer: LinkRenderer< MediaLinkDef, LinkContent & { value: MediaLinkContent }, undefined, LinkRendererOptions > = { renderV1(link: LinkContent & { value: MediaLinkContent }, _fetch: undefined, options?: LinkRendererOptions): unknown { return { type: "Link.media", value: { ...(!options?.omitKey && { key: link.key }), ...(link.value.text && { text: link.value.text }), ...(link.value.variant && { variant: link.value.variant }), }, } }, renderV2( def: MediaLinkDef, link: LinkContent & { value: MediaLinkContent }, _fetch: undefined, options?: LinkRendererOptions, ): unknown { const defVariants = def.variants || [] const linkVariant = link.value.variant && defVariants.includes(link.value.variant) ? link.value.variant : defVariants[0] return { link_type: "Media", ...(!options?.omitKey && { key: link.key }), ...(def.allowText && link.value.text && { text: link.value.text }), ...(linkVariant && { variant: linkVariant }), } }, renderMocks( def: MediaLinkDef, link: LinkContent & { value: MediaLinkContent }, options?: LinkRendererOptions, ): unknown { return this.renderV2(def, link, undefined, options) }, } export default MediaLinkRenderer