import { FileBadge, FileText, PackageCheck, Pointer } from "lucide-react"; import Link from "next/link"; import { useRouter } from "next/router"; import toast from "react-hot-toast"; import { Button, type ButtonConfigs } from "~/components/ui/button"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "~/components/ui/tooltip"; import { cn } from "~/lib/utils"; import { useServizio, useServizioAnnuncio } from "~/providers/ServizioProvider"; import type { AnnunciId } from "~/schemas/public/Annunci"; import { api } from "~/utils/api"; import { ConfermaAnnuncioModal, ConfermaInLavorazioneModal } from "./conferma"; import { ContattiProprietarioModal } from "./modale_contatti"; const SezioneConferma = () => { const { servizioId } = useServizio(); const { data, annuncioId } = useServizioAnnuncio(); const ContattiSbloccati = data.open_contatti_at !== null; const ConfermaUtente = data.user_confirmed_at !== null; const ConfermaLavorata = data.doc_conferma_added && data.hasConfermaAdmin; const AccettatoConferma = data.accettato_conferma_at !== null; if (ContattiSbloccati && !ConfermaUtente) { return ; } if (ConfermaUtente && !data.hasConfermaAdmin) { return ; } if (AccettatoConferma) { return ( ); } if (ConfermaLavorata) { if (data.doc_conferma_ref) { return ( ); } return (

Il documento non è più disponibile

Se hai bisogno di una copia, contattaci via email o chat.

); } return null; }; const PostConfermaSection = () => { const { servizio, servizioId } = useServizio(); const { data, annuncioId } = useServizioAnnuncio(); const saldoPaid = servizio.isOkSaldo; const consulenzaPaid = servizio.isOkConsulenza; if (!saldoPaid) { return (

Questo annuncio è stato confermato, procedi al saldo:

); } if (!data.doc_contratto_added) { return (

Ci siamo quasi! Stiamo preparando il contratto per te.

Una volta pronto, riceverai una notifica via email.

); } return (

{consulenzaPaid ? "Il contratto è pronto, puoi visualizzarlo:" : "Il contratto è pronto, puoi visualizzarlo e procedere al saldo:"}

{data.doc_contratto_ref ? ( ) : (

Il documento non è più disponibile

Se hai bisogno di una copia, contattaci via email o chat.

)} {!consulenzaPaid && data.contratto_tipo && } {data.doc_registrazione_added && (data.doc_registrazione_ref ? ( ) : (

Il documento non è più disponibile

Se hai bisogno di una copia, contattaci via email o chat.

))}
); }; export const Interactions = () => { const { data } = useServizioAnnuncio(); return (
{data.accettato_conferma_at != null && }
); }; export const SaldoButton = ({ annuncioId, variant = "info", className, }: { annuncioId: AnnunciId; variant?: ButtonConfigs["variant"]; className?: string; }) => { const { servizioId } = useServizio(); const router = useRouter(); const { mutate } = api.servizio.setupSaldoServizio.useMutation({ onMutate: () => { toast.loading("Caricamento ...", { id: "preparazioneSaldo" }); }, onSuccess: async (data) => { toast.success("Pagamento saldo preparato", { id: "preparazioneSaldo", }); await router.push(`/servizio/pagamento/${data}`); }, }); return ( ); }; const SaldoConsulenzaButton = ({ variant = "info", className, }: { variant?: ButtonConfigs["variant"]; className?: string; }) => { const { annuncioId } = useServizioAnnuncio(); const { servizioId } = useServizio(); const router = useRouter(); const { mutate } = api.servizio.setupSaldoConsulenzaServizio.useMutation({ onMutate: () => { toast.loading("Caricamento ...", { id: "preparazioneSaldo" }); }, onSuccess: async (data) => { toast.success("Pagamento saldo preparato", { id: "preparazioneSaldo", }); await router.push(`/servizio/pagamento/${data}`); }, }); return ( ); };