import { ExternalLink, UnfoldVertical } from "lucide-react"; import Link from "next/link"; import { Credenza, CredenzaBody, CredenzaClose, CredenzaContent, CredenzaDescription, CredenzaFooter, CredenzaHeader, CredenzaTitle, CredenzaTrigger, } from "~/components/custom_ui/credenza"; import { ImageFlbk } from "~/components/ImageWithFallback"; 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 { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from "~/components/ui/carousel"; import { handleConsegna } from "~/lib/annuncio_details"; import { replaceWithBr } from "~/lib/newlineToBr"; import { cn, formatCurrency } from "~/lib/utils"; import { useTranslation } from "~/providers/I18nProvider"; import { useServizioAnnuncio } from "~/providers/ServizioProvider"; import type { Annunci } from "~/schemas/public/Annunci"; export const AnnuncioCard = ({ className }: { className?: string }) => { const { data } = useServizioAnnuncio(); return ( } className={className} data={data} interactions={} /> ); }; export const BasicAnnuncioCard = ({ actions, interactions, className, data, }: { actions?: React.ReactNode; interactions?: React.ReactNode; className?: string; data: Pick< Annunci, | "id" | "codice" | "prezzo" | "desc_en" | "desc_it" | "url_immagini" | "titolo_en" | "titolo_it" | "tipo" | "consegna" | "stato" | "web" >; }) => { const { t } = useTranslation(); return ( Codice: {data.codice} {actions}
{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 && ( )}
); }; const TipoBadge = ({ tipo }: { tipo: Annunci["tipo"] }) => { return (
{tipo}
); }; const AnnuncioDettaglio = ({ data, }: { data: Pick< Annunci, | "id" | "codice" | "prezzo" | "desc_en" | "desc_it" | "url_immagini" | "titolo_en" | "titolo_it" | "tipo" | "consegna" | "stato" | "web" >; }) => { const { locale, t } = useTranslation(); return ( Annuncio {data.codice} Annuncio {data.codice}
{data?.url_immagini?.map((img, idx) => ( ))}
e.preventDefault()} onKeyDown={(e) => e.stopPropagation()} role="button" tabIndex={0} >
{t.card.codice}
Cod: {data.codice}
{t.card.prezzo}
{formatCurrency(data.prezzo / 1e2)}
{t.card.titolo}
{locale === "it" ? data.titolo_it : data.titolo_en}
); };