import { graphql, unmaskFragment } from "@/gql"; import { type FeaturedBlockFragment } from "@/gql/graphql"; import Link from "next/link"; import { Image } from "@/components/general/Image"; import { RichText } from "@/components/general/RichText"; import { ImageFragmentDefinition } from "@/lib/common"; import { internalHref } from "@/lib/links"; import styles from "./featuredBlock.module.scss"; const FeaturedBlockFragmentDefinition = graphql(` fragment FeaturedBlock on FeaturedBlock { title featuredBlockText: text linkText imagePosition backgroundColor featuredPage { contentType pageType url ... on EventPage { featuredImage { ...Image } } ... on NewsPage { featuredImage { ...Image } } } featuredImageOverride { ...Image } } `); export const FeaturedBlock = ({ block, }: { block: FeaturedBlockFragment; }) => { const image = unmaskFragment( ImageFragmentDefinition, block.featuredImageOverride ); // TODO: fetch image from target page const pageUrl = block.featuredPage.url; const featuredHref = pageUrl ? internalHref(pageUrl) ?? pageUrl : "#"; return (