import { ExternalLink, UnfoldVertical } from "lucide-react"; import Link from "next/link"; import { replaceWithBr } from "~/lib/newlineToBr"; import { cn, formatCurrency } from "~/lib/utils"; import { useTranslation } from "~/providers/I18nProvider"; import { useServizio } from "~/providers/ServizioProvider"; import type { Annunci } from "~/schemas/public/Annunci"; import type { AnnuncioRicerca } from "~/server/controllers/annunci.controller"; import { api } from "~/utils/api"; import { CardAnnuncio, CarouselAnnuncio } from "../annuncio_card"; import { InteressatoButtonServizio } from "../annuncio-interactions/annuncio_interactions"; import { LoadingPage } from "../loading"; import { Badge } from "../ui/badge"; import { Button } from "../ui/button"; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "../ui/dialog"; export const AnnunciCompatibili = () => { const { servizioId } = useServizio(); const { data, isLoading } = api.servizio.getCompatibileAnnunci.useQuery({ servizioId, }); return ( Esplora Annunci Compatibili Annunci compatibili con le preferenze del servizio {isLoading ? ( ) : ( <> {!data || data.length === 0 ? ( Nessun annuncio compatibile trovato. Amplia la ricerca per trovare annunci compatibili. ) : ( {data.map((annuncio) => ( ))} )} > )} ); }; const TipoBadge = ({ tipo }: { tipo: Annunci["tipo"] }) => { return ( Affitto {tipo} ); }; const AnnuncioDettaglio = ({ data }: { data: AnnuncioRicerca }) => { const { locale, t } = useTranslation(); return ( Dettagli annuncio Annuncio {data.codice} Vai alla pagina completa{" "} Annuncio {data.codice} img.img)} updated_at={data.media_updated_at} videos={data.url_video} /> {data.stato === "Trattativa" && ( Annuncio in Trattativa )} {t.card.codice} Cod: {data.codice} {t.card.prezzo} {formatCurrency(data.prezzo / 1e2)} {t.card.titolo} {locale === "it" ? data.titolo_it : data.titolo_en} ); };