From 90d5082e24a8dd558a28cd0d0ef46b8ea34f0b71 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Sun, 5 Mar 2023 16:09:02 +0000 Subject: [PATCH] feat: redirect preview address for visitor --- src/pages/_site/[site]/preview/[page].tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/pages/_site/[site]/preview/[page].tsx b/src/pages/_site/[site]/preview/[page].tsx index 012e85ae..9b2067eb 100644 --- a/src/pages/_site/[site]/preview/[page].tsx +++ b/src/pages/_site/[site]/preview/[page].tsx @@ -8,6 +8,8 @@ import { GetServerSideProps } from "next" import { getServerSideProps as getLayoutServerSideProps } from "~/components/site/SiteLayout.server" import { serverSidePropsHandler } from "~/lib/server-side-props" import { QueryClient } from "@tanstack/react-query" +import { useUserRole } from "~/hooks/useUserRole" +import { getDefaultSlug, getSiteLink } from "~/lib/helpers" export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( async (ctx) => { @@ -35,6 +37,7 @@ function SitePagePage() { const router = useRouter() const domainOrSubdomain = router.query.site as string const pageSlug = router.query.page as string + const userRole = useUserRole(domainOrSubdomain) const page = useGetPage({ site: domainOrSubdomain, @@ -43,6 +46,17 @@ function SitePagePage() { const site = useGetSite(domainOrSubdomain) + if (userRole.isSuccess && !userRole.data && page.isSuccess) { + router.push( + `${getSiteLink({ + subdomain: domainOrSubdomain, + })}/${ + page.data?.slug || + getDefaultSlug(page.data?.title || "", page.data?.id || "") + }`, + ) + } + return (