"use client"; import Image from "next/image"; import Link from "next/link"; import { cn } from "@/lib/utils"; import { FileText } from "lucide-react"; import type { ZBookmarkTypeAsset } from "@karakeep/shared/types/bookmarks"; import { getAssetUrl } from "@karakeep/shared-react/utils/assetUtils"; import { getSourceUrl } from "@karakeep/shared-react/utils/bookmarkUtils"; import { BookmarkLayoutAdaptingCard } from "./BookmarkLayoutAdaptingCard"; import FooterLinkURL from "./FooterLinkURL"; function AssetImage({ bookmark, className, }: { bookmark: ZBookmarkTypeAsset; className?: string; }) { const bookmarkedAsset = bookmark.content; switch (bookmarkedAsset.assetType) { case "image": { return ( asset ); } case "pdf": { const screenshotAssetId = bookmark.assets.find( (r) => r.assetType === "assetScreenshot", )?.id; if (!screenshotAssetId) { return (
); } return ( asset ); } default: { const _exhaustiveCheck: never = bookmarkedAsset.assetType; return ; } } } export default function AssetCard({ bookmark: bookmarkedAsset, className, }: { bookmark: ZBookmarkTypeAsset; className?: string; }) { return ( ) } bookmark={bookmarkedAsset} className={className} wrapTags={true} image={(_layout, className) => (
)} /> ); }