import { Info, Toolbox } from "lucide-react"; import Image from "next/image"; import { AdminActions, UserActions, } from "~/components/servizio/annuncio_actions"; import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "~/components/ui/alert-dialog"; 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 { useServizio, useServizioAnnuncio } from "~/providers/ServizioProvider"; import type { AnnuncioRicerca } from "~/server/controllers/annunci.controller"; import { api } from "~/utils/api"; import { Button } from "../ui/button"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "../ui/collapsible"; import { AnnuncioDettaglio, TipoBadge } from "./annuncio_dettaglio"; export const AnnuncioCard = ({ className }: { className?: string }) => { const { isAdmin } = useServizio(); const { data } = useServizioAnnuncio(); return ( ) : ( ) } /> ); }; export const BasicAnnuncioCard = ({ interactions, className, data, }: { interactions?: React.ReactNode; className?: string; data: AnnuncioRicerca; }) => { return ( Annuncio {data.codice}
{interactions}
); }; export const AnnuncioDisplay = ({ data, className, }: { data: AnnuncioRicerca; className?: string; }) => { const { isAdmin } = useServizio(); const { t } = useTranslation(); return (
{data.codice}
{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)}
{isAdmin && }
); }; const AdminAnnuncioContatti = () => { const { data } = useServizioAnnuncio(); const { data: annuncio, isLoading } = api.annunci.getAnnuncioFull.useQuery({ id: data.id, }); return ( Contatti Annuncio {data.codice} desc
Contatti Aperti il: {data.open_contatti_at ? new Date(data.open_contatti_at).toLocaleString("it-IT") : "Non ancora aperti"}
{isLoading ? (
Loading...
) : ( <>
Locatore/Incaricato: {annuncio?.locatore || "N/A"}
Email: {annuncio?.email || "N/A"}
Telefono: {annuncio?.numero || "N/A"}
)}
Chiudi
); };