import Image from "next/image"; import { AnnuncioActions } from "~/components/servizio/annuncio_actions"; import { Interactions } from "~/components/servizio/interactions"; 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, confirming, }: { className?: string; confirming?: boolean; }) => { const { data } = useServizioAnnuncio(); return ( } className={className} confirming={confirming} 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, confirming, }: { actions?: React.ReactNode; interactions?: React.ReactNode; className?: string; data: AnnuncioRicerca; confirming?: boolean; }) => { const { t } = useTranslation(); return ( Annuncio {data.codice} {actions} {data.titolo_it} {handleConsegna({ aggiornamento: t.card.in_aggiornamento, consegna: data.consegna, consegna_da: t.card.consegna_da, mesi: t.parametri.mesi, subito: t.card.consegna_subito, })} {formatCurrency(data.prezzo / 1e2)} {interactions} ); }; export const AnnuncioCardSkeleton = () => { return ( ); };