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 ( 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 ( Annuncio {data.codice} 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}
); };