import { ArrowRight } from "lucide-react"; import type { GetServerSideProps } from "next"; import Link from "next/link"; import { UserDashboardFaq } from "~/components/area-riservata/dashboard"; import { AreaRiservataLayout } from "~/components/Layout"; import { LoadingPage } from "~/components/loading"; import { Servizio } from "~/components/servizio/servizio"; import { Status500 } from "~/components/status-page"; import { Button } from "~/components/ui/button"; import { Separator } from "~/components/ui/separator"; import type { NextPageWithLayout } from "~/pages/_app"; import { useTranslation } from "~/providers/I18nProvider"; import { useEnforcedSession } from "~/providers/SessionProvider"; import type { ServizioServizioId } from "~/schemas/public/Servizio"; import { TrpcAuthedFetchingIstance } from "~/server/utils/ssgHelper"; import { zServizioId } from "~/server/utils/zod_types"; import { api } from "~/utils/api"; type ServizioPageProps = { servizioId: ServizioServizioId; }; const ServizioPage: NextPageWithLayout = ({ servizioId, }: ServizioPageProps) => { const { user } = useEnforcedSession(); const { t } = useTranslation(); const { data, isLoading } = api.servizio.getServizioData.useQuery({ servizioId, }); if (isLoading) { return ; } if (!data) { return ; } return (

{t.servizio.dettaglio_servizio}

); }; export default ServizioPage; export const getServerSideProps = (async (context) => { const servizio_id = context.params?.servizioId; if (typeof servizio_id !== "string") { console.error("Error: servizioId is not a string"); return { redirect: { destination: "/500", permanent: false, }, }; } const parsedServizioId = zServizioId.safeParse(servizio_id); if (!parsedServizioId.success) { console.error("Error parsing servizioId", parsedServizioId.error); return { redirect: { destination: "/500", permanent: false, }, }; } const servizioId = parsedServizioId.data; const access_token = context.req.cookies.access_token; const helper = await TrpcAuthedFetchingIstance({ access_token }); if (helper) { await helper.trpc.servizio.getServizio.prefetch({ servizioId, }); return { props: { servizioId, trpcState: helper.trpc.dehydrate(), }, }; } return { redirect: { destination: `/area-riservata/admin/utenti`, permanent: false, }, }; }) satisfies GetServerSideProps; ServizioPage.getLayout = function getLayout(page) { return {page}; };