import { ExternalLink, Mail, MessagesSquare, Paperclip, Search, ShoppingBag, Tickets, UserCog, } from "lucide-react"; import Head from "next/head"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { useRouter } from "next/router"; import { type ReactNode, useContext } from "react"; import toast from "react-hot-toast"; import { Sidebar } from "~/components/area-riservata/sidebar"; import { BannerFactory } from "~/components/banners"; import { Footer, MiniFooter } from "~/components/footer"; import { LoadingPage } from "~/components/loading"; import { SiteHeader } from "~/components/navbar/site-header"; import { WhatsAppIcon } from "~/components/svgs"; import { Button } from "~/components/ui/button"; import { Separator } from "~/components/ui/separator"; import { UserViewContext, UserViewProvider } from "~/lib/userViewContext"; import { useTranslation } from "~/providers/I18nProvider"; import { EnforcedSessionContext, useSession, } from "~/providers/SessionProvider"; import type { UsersId } from "~/schemas/public/Users"; import type { ValidSession } from "~/server/api/trpc"; import { api } from "~/utils/api"; interface Props { children: ReactNode; noFooter?: boolean; } export const Layout = ({ children, noFooter }: Props) => { const { data: bannerData } = api.settings.getBannerData.useQuery({ area_riservata: false, }); return (
{bannerData?.map((banner) => (
{BannerFactory(banner)}
))}
{children}
{!noFooter &&
); }; export const AreaRiservataLayout = ({ children, noSidebar, noFooter, ignoreSessionCheck, }: { children: ReactNode; noSidebar?: boolean; noFooter?: boolean; ignoreSessionCheck?: boolean; }) => { const { data: bannerData } = api.settings.getBannerData.useQuery({ area_riservata: true, }); const session = useSession(); if (!ignoreSessionCheck) { if (session.status === "pending") return (
{!noFooter && }
); if (session.status !== "success" || !session.user) { window.location.reload(); return (
{!noFooter && }
); } } return (
{bannerData?.map((banner) => (
{BannerFactory(banner)}
))}
{noSidebar ? null : ( )} {children}
{!noFooter && } {/* */}
); }; export const AreaRiservataLayoutUserView = ({ children, }: { children: ReactNode & { props: { userId: UsersId } }; }) => { const { t } = useTranslation(); const props = children.props as { userId: UsersId }; return (
{t.heads.area_riservata_titolo}
{children}
{/* */}
); }; const UserViewHeader = () => { const data = useContext(UserViewContext); const pathname = usePathname(); const router = useRouter(); const { mutate: swap } = api.auth.swapUser.useMutation({ onSuccess: async () => { toast.success("Utente cambiato con successo"); await router.push("/area-riservata/dashboard"); router.reload(); }, }); if (!data) return
Errore
; return (
{data.username}
{data.email} | {data.telefono}
); };