"use client"; import { memo } from "react"; import Image from "next/image"; import { useTranslation } from "../../../contexts/MessagesContext"; import QuoteDecor from "./QuoteDecor"; import QuoteStatementDecor from "./QuoteStatementDecor"; import type { QuoteBlockViewProps } from "./QuoteBlock.types"; function QuoteBlockView({ className, quote, quoteSecondary, author, source, quoteId, authorId, config, imageError, imageLoading, currentAvatarSrc, onImageLoad, onImageError, }: QuoteBlockViewProps) { const t = useTranslation("quoteBlock"); const avatarAlt = t("avatarAlt").replace("{author}", author); if (config.statementLayout) { if (!quoteSecondary?.trim()) { return null; } const statementTextClass = "font-bricolage-grotesque text-[28px] font-bold leading-9 tracking-[var(--text-xx-large-heading--letter-spacing)] text-[var(--color-surface-default-tertiary)] md:text-[length:var(--text-xx-large-heading)] md:leading-[length:var(--text-xx-large-heading--line-height)]"; return (

{quote}

{quoteSecondary}

); } return (
{/* Background with noise texture */}
#grain\')', }} /> {/* DECORATIONS (behind content) */} {config.showDecor && (
); } QuoteBlockView.displayName = "QuoteBlockView"; export default memo(QuoteBlockView);