import { forwardRef, useMemo } from "react"; import MemoContent from "@/components/MemoContent"; import UserAvatar from "@/components/UserAvatar"; import i18n from "@/i18n"; import { cn } from "@/lib/utils"; import { useTranslate } from "@/utils/i18n"; import { useMemoViewContext } from "../MemoView/MemoViewContext"; import { buildMemoShareImagePreviewModel } from "./memoShareImagePreviewModel"; const MemoShareImagePreview = forwardRef(({ width }, ref) => { const t = useTranslate(); const { memo, creator, blurred, showBlurredContent } = useMemoViewContext(); const fallbackDisplayName = t("common.memo"); const locale = i18n.language; const preview = useMemo( () => buildMemoShareImagePreviewModel({ memo, creator, fallbackDisplayName, locale, }), [creator, fallbackDisplayName, locale, memo], ); return (
{preview.displayName}
{preview.formattedDisplayTime &&
{preview.formattedDisplayTime}
}
{preview.visualItems.length > 0 && (
{preview.visualItems.slice(0, 4).map((item, index) => (
{item.filename} {index === 3 && preview.visualItems.length > 4 && (
+{preview.visualItems.length - 4}
)}
))}
)} {preview.footerBadges.length > 0 && (
{preview.footerBadges.map((badge) => ( {badge.count} {t("common.attachments").toLowerCase()} ))}
)}
); }); MemoShareImagePreview.displayName = "MemoShareImagePreview"; export default MemoShareImagePreview;