import { ExternalLink } from "lucide-react"; import Image from "next/image"; import Link from "next/link"; import { AnnuncioActions } from "~/components/servizio/annuncio_actions"; import { Interactions } from "~/components/servizio/interactions"; import { Button } from "~/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card"; import { handleConsegna } from "~/lib/annuncio_details"; import { getStorageUrl } from "~/lib/storage_utils"; import { cn, formatCurrency } from "~/lib/utils"; import { useTranslation } from "~/providers/I18nProvider"; import { useServizioAnnuncio } from "~/providers/ServizioProvider"; import type { AnnuncioRicerca } from "~/server/controllers/annunci.controller"; import { AnnuncioDettaglio, TipoBadge } from "./annuncio_dettaglio"; export const AnnuncioCard = ({ className }: { className?: string }) => { const { data } = useServizioAnnuncio(); return ( } className={className} data={{ ...data, modificato_il: data.modificato_il ? new Date(data.modificato_il) : null, media_updated_at: data.media_updated_at ? new Date(data.media_updated_at) : null, }} interactions={} /> ); }; export const BasicAnnuncioCard = ({ actions, interactions, className, data, }: { actions?: React.ReactNode; interactions?: React.ReactNode; className?: string; data: AnnuncioRicerca; }) => { const { t } = useTranslation(); return ( Codice: {data.codice} {actions}
{data.codice}
{interactions}
{handleConsegna({ aggiornamento: t.card.in_aggiornamento, consegna: data.consegna, consegna_da: t.card.consegna_da, mesi: t.preferenze.mesi, subito: t.card.consegna_subito, })} {formatCurrency(data.prezzo / 1e2)}
{data.titolo_it || data.codice}
{data.stato !== "Sospeso" && data.web && ( )}
); };