import { Card, Link, Stack, useContainerSize } from "@front10/base-elements"; import clsx from "clsx"; import * as React from "react"; import { InstagramImage } from "../instagram/InstagramImage"; import { InstagramText } from "../instagram/InstagramText"; import { FacebookCardProps } from "./FacebookCard"; import { FacebookHeader } from "./FacebookHeader"; const formatter = new Intl.DateTimeFormat("en", { dateStyle: "medium" }); type Variant = "full" | "image-only" | "text-only"; function FacebookA( { data: { image, imageAltText = "", link, createdAt, content, user = {}, } = {}, imageCover = "cover", onCardClick, onCallToActionClick, tabIndex, isLoading, className, ...props }: FacebookCardProps, ref: React.Ref ) { const formattedDate = React.useMemo(() => { let date = new Date(createdAt ?? ""); if (date instanceof Date && !isNaN(date as any)) { return formatter.format(date); } return ""; }, [createdAt]); const cardWidth = useContainerSize(ref as any); let variant: Variant = "full"; if (!isLoading) { if (!content) { variant = "image-only"; } else if (!image) { variant = "text-only"; } } return ( ({ ...theme.layout?.cardContainer, minHeight: "fit-content", })} className={clsx("wx-card", className)} > {cardWidth > 150 ? ( ) : null} {variant === "full" || variant === "image-only" ? ( ) : null} {(cardWidth > 190 || variant === "text-only") && variant !== "image-only" ? ( {content} ) : null} ); } const FacebookAMWithRef = React.forwardRef(FacebookA); export { FacebookAMWithRef as FacebookA };