import { ArrowLeft } from "lucide-react"; import type { GetServerSideProps } from "next"; import { useRouter } from "next/router"; import { DocNotFoundPage } from "~/components/doc_not_found"; import { AreaRiservataLayout } from "~/components/Layout"; import { LoadingPage } from "~/components/loading"; import { FileSection } from "~/components/servizio/conferma"; import { Status500 } from "~/components/status-page"; import { Button } from "~/components/ui/button"; import type { NextPageWithLayout } from "~/pages/_app"; import { useTranslation } from "~/providers/I18nProvider"; import type { AnnunciId } from "~/schemas/public/Annunci"; import type { ServizioServizioId } from "~/schemas/public/Servizio"; import { TrpcAuthedFetchingIstance } from "~/server/utils/ssgHelper"; import { zAnnuncioId, zServizioId } from "~/server/utils/zod_types"; import { api } from "~/utils/api"; type RiapriConfermaProps = { servizioId: ServizioServizioId; annuncioId: AnnunciId; }; const RiapriConferma: NextPageWithLayout = ({ servizioId, annuncioId, }: RiapriConfermaProps) => { const { data, isLoading } = api.servizio.getServizioAnnuncio.useQuery({ annuncioId, servizioId, }); const router = useRouter(); const { t } = useTranslation(); if (isLoading) return ; if (!data) return ; if (!data.doc_conferma_ref) return ; return (

{t.servizio.conferma.titolo}

{t.servizio.conferma.descrizione}

{t.servizio.conferma.cta}

{t.servizio.conferma.coordinate}

{t.servizio.conferma.intestazione}{" "} {data.caparra_intestazione || ""}

{t.servizio.conferma.iban} {data.caparra_iban || ""}

{t.servizio.conferma.importo} {data.caparra_importo || ""}

{t.servizio.conferma.causale} {data.caparra_causale || ""}

{t.servizio.conferma.coord_footer}

); }; RiapriConferma.getLayout = function getLayout(page) { return {page}; }; export default RiapriConferma; export const getServerSideProps = (async (context) => { const slug = context.params?.slug; if (!slug || slug.length !== 2) { return { notFound: true, }; } const [servizioId, annuncioId] = slug; if (!servizioId || !annuncioId) { return { notFound: true, }; } const parsedServizioId = zServizioId.safeParse(servizioId); const parsedAnnuncioId = zAnnuncioId.safeParse(parseInt(annuncioId)); if (!parsedServizioId.success || !parsedAnnuncioId.success) { return { notFound: true, }; } const access_token = context.req.cookies.access_token; const helper = await TrpcAuthedFetchingIstance({ access_token }); if (helper) { await helper.trpc.servizio.getServizioAnnuncio.prefetch({ annuncioId: parsedAnnuncioId.data, servizioId: parsedServizioId.data, }); return { props: { annuncioId: parsedAnnuncioId.data, servizioId: parsedServizioId.data, trpcState: helper.trpc.dehydrate(), }, }; } return { redirect: { destination: "/500", permanent: false, }, }; }) satisfies GetServerSideProps;