diff --git a/apps/client/src/App.tsx b/apps/client/src/App.tsx index cff59009..4399062f 100644 --- a/apps/client/src/App.tsx +++ b/apps/client/src/App.tsx @@ -56,7 +56,7 @@ export default function App() { )} }> - } /> + } /> } /> diff --git a/apps/client/src/features/page/components/breadcrumbs/breadcrumb.tsx b/apps/client/src/features/page/components/breadcrumbs/breadcrumb.tsx index d4c2da16..b11768b0 100644 --- a/apps/client/src/features/page/components/breadcrumbs/breadcrumb.tsx +++ b/apps/client/src/features/page/components/breadcrumbs/breadcrumb.tsx @@ -81,7 +81,7 @@ export default function Breadcrumb() { const renderAnchor = useCallback( (node: SpaceTreeNode) => ( - + diff --git a/apps/client/src/features/page/page.utils.ts b/apps/client/src/features/page/page.utils.ts index e60df520..3ae65aab 100644 --- a/apps/client/src/features/page/page.utils.ts +++ b/apps/client/src/features/page/page.utils.ts @@ -32,5 +32,5 @@ export const buildSharedPageUrl = (opts: { return `/share/p/${buildPageSlug(pageSlugId, pageTitle)}`; } - return `/share/${shareId}/${buildPageSlug(pageSlugId, pageTitle)}`; + return `/share/${shareId}/p/${buildPageSlug(pageSlugId, pageTitle)}`; }; diff --git a/apps/client/src/features/share/components/share-modal.tsx b/apps/client/src/features/share/components/share-modal.tsx index 8558416c..20dcc518 100644 --- a/apps/client/src/features/share/components/share-modal.tsx +++ b/apps/client/src/features/share/components/share-modal.tsx @@ -11,7 +11,7 @@ import { Tooltip, } from "@mantine/core"; import { IconExternalLink, IconWorld } from "@tabler/icons-react"; -import React, { useEffect, useState } from "react"; +import React, { useEffect, useMemo, useState } from "react"; import { useCreateShareMutation, useDeleteShareMutation, @@ -43,7 +43,7 @@ export default function ShareModal({ readOnly }: ShareModalProps) { // if level is greater than zero, then it is a descendant page from a shared page const isDescendantShared = share && share.level > 0; - const publicLink = `${getAppUrl()}/share/${share?.key}/${pageSlug}`; + const publicLink = `${getAppUrl()}/share/${share?.key}/p/${pageSlug}`; const [isPagePublic, setIsPagePublic] = useState(false); useEffect(() => { @@ -92,6 +92,27 @@ export default function ShareModal({ readOnly }: ShareModalProps) { }); }; + const shareLink = useMemo(() => ( + + } + style={{ width: "100%" }} + /> + + + + + ), [publicLink]); + return ( @@ -110,7 +131,7 @@ export default function ShareModal({ readOnly }: ShareModalProps) { } variant="default" > - Share + {t("Share")} @@ -141,14 +162,7 @@ export default function ShareModal({ readOnly }: ShareModalProps) { - - } - /> - + {shareLink} ) : ( <> @@ -173,25 +187,7 @@ export default function ShareModal({ readOnly }: ShareModalProps) { {pageIsShared && ( <> - - } - style={{ width: "100%" }} - /> - - - - - + {shareLink}
{t("Include sub-pages")} @@ -207,7 +203,6 @@ export default function ShareModal({ readOnly }: ShareModalProps) { disabled={readOnly} /> -
{t("Search engine indexing")} diff --git a/apps/client/src/pages/share/shared-page.tsx b/apps/client/src/pages/share/shared-page.tsx index 8cd69836..a574a614 100644 --- a/apps/client/src/pages/share/shared-page.tsx +++ b/apps/client/src/pages/share/shared-page.tsx @@ -21,7 +21,7 @@ export default function SingleSharedPage() { useEffect(() => { if (shareId && data) { if (data.share.key !== shareId) { - navigate(`/share/${data.share.key}/${pageSlug}`, { replace: true }); + navigate(`/share/${data.share.key}/p/${pageSlug}`, { replace: true }); } } }, [shareId, data]); diff --git a/apps/server/src/core/share/share-seo.controller.ts b/apps/server/src/core/share/share-seo.controller.ts index 10493fcf..ecacecf0 100644 --- a/apps/server/src/core/share/share-seo.controller.ts +++ b/apps/server/src/core/share/share-seo.controller.ts @@ -19,7 +19,7 @@ export class ShareSeoController { /* * add meta tags to publicly shared pages */ - @Get([':shareId/:pageSlug', 'p/:pageSlug']) + @Get([':shareId/p/:pageSlug', 'p/:pageSlug']) async getShare( @Res({ passthrough: false }) res: FastifyReply, @Req() req: FastifyRequest, diff --git a/apps/server/src/main.ts b/apps/server/src/main.ts index 80da8b06..95df255d 100644 --- a/apps/server/src/main.ts +++ b/apps/server/src/main.ts @@ -32,7 +32,7 @@ async function bootstrap() { ); app.setGlobalPrefix('api', { - exclude: ['robots.txt', 'share/:shareId/:pageSlug'], + exclude: ['robots.txt', 'share/:shareId/p/:pageSlug'], }); const reflector = app.get(Reflector);