diff --git a/apps/client/src/features/share/components/share-modal.tsx b/apps/client/src/features/share/components/share-modal.tsx index 20dcc518..a39effca 100644 --- a/apps/client/src/features/share/components/share-modal.tsx +++ b/apps/client/src/features/share/components/share-modal.tsx @@ -10,7 +10,7 @@ import { TextInput, Tooltip, } from "@mantine/core"; -import { IconExternalLink, IconWorld } from "@tabler/icons-react"; +import { IconExternalLink, IconWorld, IconLock } from "@tabler/icons-react"; import React, { useEffect, useMemo, useState } from "react"; import { useCreateShareMutation, @@ -18,23 +18,27 @@ import { useShareForPageQuery, useUpdateShareMutation, } from "@/features/share/queries/share-query.ts"; -import { Link, useParams } from "react-router-dom"; +import { Link, useNavigate, useParams } from "react-router-dom"; import { extractPageSlugId, getPageIcon } from "@/lib"; import { useTranslation } from "react-i18next"; import CopyTextButton from "@/components/common/copy.tsx"; -import { getAppUrl } from "@/lib/config.ts"; +import { getAppUrl, isCloud } from "@/lib/config.ts"; import { buildPageUrl } from "@/features/page/page.utils.ts"; import classes from "@/features/share/components/share.module.css"; +import useTrial from "@/ee/hooks/use-trial.tsx"; +import { getCheckoutLink } from "@/ee/billing/services/billing-service.ts"; interface ShareModalProps { readOnly: boolean; } export default function ShareModal({ readOnly }: ShareModalProps) { const { t } = useTranslation(); + const navigate = useNavigate(); const { pageSlug } = useParams(); const pageId = extractPageSlugId(pageSlug); const { data: share } = useShareForPageQuery(pageId); const { spaceSlug } = useParams(); + const { isTrial } = useTrial(); const createShareMutation = useCreateShareMutation(); const updateShareMutation = useUpdateShareMutation(); const deleteShareMutation = useDeleteShareMutation(); @@ -61,7 +65,7 @@ export default function ShareModal({ readOnly }: ShareModalProps) { createShareMutation.mutateAsync({ pageId: pageId, includeSubPages: true, - searchIndexing: true, + searchIndexing: false, }); setIsPagePublic(value); } else { @@ -92,26 +96,29 @@ export default function ShareModal({ readOnly }: ShareModalProps) { }); }; - const shareLink = useMemo(() => ( - - } - style={{ width: "100%" }} - /> - - - - - ), [publicLink]); + const shareLink = useMemo( + () => ( + + } + style={{ width: "100%" }} + /> + + + + + ), + [publicLink], + ); return ( @@ -135,7 +142,28 @@ export default function ShareModal({ readOnly }: ShareModalProps) { - {isDescendantShared ? ( + {isCloud() && isTrial ? ( + <> + + + + + {t("Upgrade to share pages")} + + + {t( + "Page sharing is available on paid plans. Upgrade to share your pages publicly.", + )} + + + + ) : isDescendantShared ? ( <> {t("Inherits public sharing from")}