mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-15 06:33:55 +01:00
[web] Pass project owner link sharing settings to frontend GitOrigin-RevId: ff000f38ef36a3d448a2934d0c5963139852eee2
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import { useTranslation } from 'react-i18next'
|
|
import OLButton from '@/shared/components/ol/ol-button'
|
|
import { useShareProjectContext } from '@/features/share-project-modal/components/share-project-modal'
|
|
import { useProjectContext } from '@/shared/context/project-context'
|
|
import { useUserContext } from '@/shared/context/user-context'
|
|
import { debugConsole } from '@/utils/debugging'
|
|
import getMeta from '@/utils/meta'
|
|
|
|
export default function CopySharingLinkButton() {
|
|
const { t } = useTranslation()
|
|
const { sharingLinkData, projectAccess, setSuccessActionMessage } =
|
|
useShareProjectContext()
|
|
const { projectId } = useProjectContext()
|
|
const { isAdmin } = useUserContext()
|
|
|
|
const isCopyBtnEnabled =
|
|
Boolean(navigator.clipboard?.writeText) &&
|
|
Boolean(sharingLinkData?.token) &&
|
|
(projectAccess?.startsWith('anyoneInXyzWithTheLink') ||
|
|
projectAccess === 'anyoneWithTheLink')
|
|
|
|
const handleCopyClick = () => {
|
|
if (!sharingLinkData?.token) {
|
|
return
|
|
}
|
|
|
|
const origin = isAdmin
|
|
? getMeta('ol-ExposedSettings').siteUrl
|
|
: window.location.origin
|
|
const link = `${origin}/project/${projectId}/share#${sharingLinkData.token}`
|
|
|
|
navigator.clipboard
|
|
.writeText(link)
|
|
.then(() => setSuccessActionMessage(t('link_copied')))
|
|
.catch(debugConsole.error)
|
|
}
|
|
|
|
return (
|
|
<OLButton
|
|
variant="secondary"
|
|
leadingIcon={isCopyBtnEnabled ? 'link' : 'link_off'}
|
|
disabled={!isCopyBtnEnabled}
|
|
onClick={handleCopyClick}
|
|
>
|
|
{t('copy_sharing_link')}
|
|
</OLButton>
|
|
)
|
|
}
|