diff --git a/app/scenes/Document/components/ShareButton.tsx b/app/scenes/Document/components/ShareButton.tsx index 6d27c95a3..afbea2d43 100644 --- a/app/scenes/Document/components/ShareButton.tsx +++ b/app/scenes/Document/components/ShareButton.tsx @@ -7,6 +7,7 @@ import Document from "~/models/Document"; import Button from "~/components/Button"; import Popover from "~/components/Popover"; import Tooltip from "~/components/Tooltip"; +import useCurrentTeam from "~/hooks/useCurrentTeam"; import useStores from "~/hooks/useStores"; import SharePopover from "./SharePopover"; @@ -17,10 +18,12 @@ type Props = { function ShareButton({ document }: Props) { const { t } = useTranslation(); const { shares } = useStores(); + const team = useCurrentTeam(); const share = shares.getByDocumentId(document.id); const sharedParent = shares.getByDocumentParents(document.id); const isPubliclyShared = - share?.published || (sharedParent?.published && !document.isDraft); + team.sharing && + (share?.published || (sharedParent?.published && !document.isDraft)); const popover = usePopoverState({ gutter: 0, diff --git a/app/scenes/Document/components/SharePopover.tsx b/app/scenes/Document/components/SharePopover.tsx index d32a9110d..6490d0fd5 100644 --- a/app/scenes/Document/components/SharePopover.tsx +++ b/app/scenes/Document/components/SharePopover.tsx @@ -14,6 +14,7 @@ import Input from "~/components/Input"; import Notice from "~/components/Notice"; import Switch from "~/components/Switch"; import Text from "~/components/Text"; +import useCurrentTeam from "~/hooks/useCurrentTeam"; import useKeyDown from "~/hooks/useKeyDown"; import usePolicy from "~/hooks/usePolicy"; import useStores from "~/hooks/useStores"; @@ -36,8 +37,9 @@ function SharePopover({ onRequestClose, visible, }: Props) { + const team = useCurrentTeam(); const { t } = useTranslation(); - const { shares, auth } = useStores(); + const { shares } = useStores(); const { showToast } = useToasts(); const [isCopied, setIsCopied] = React.useState(false); const timeout = React.useRef>(); @@ -47,22 +49,23 @@ function SharePopover({ const canPublish = can.update && !document.isTemplate && - auth.team?.sharing && + team.sharing && documentAbilities.share; const isPubliclyShared = - (share && share.published) || - (sharedParent && sharedParent.published && !document.isDraft); + team.sharing && + ((share && share.published) || + (sharedParent && sharedParent.published && !document.isDraft)); useKeyDown("Escape", onRequestClose); React.useEffect(() => { - if (visible) { + if (visible && team.sharing) { document.share(); buttonRef.current?.focus(); } return () => (timeout.current ? clearTimeout(timeout.current) : undefined); - }, [document, visible]); + }, [document, visible, team.sharing]); const handlePublishedChange = React.useCallback( async (event) => { @@ -113,6 +116,9 @@ function SharePopover({ const userLocale = useUserLocale(); const locale = userLocale ? dateLocale(userLocale) : undefined; + const shareUrl = team.sharing + ? share?.url ?? "" + : `${team.url}${document.url}`; return ( <> @@ -199,14 +205,14 @@ function SharePopover({ type="text" label={t("Link")} placeholder={`${t("Loading")}…`} - value={share ? share.url : ""} + value={shareUrl} labelHidden readOnly /> - +