import EditMember from './edit-member'
import LinkSharing from './link-sharing'
import Invite from './invite'
import SendInvites from './send-invites'
import ViewMember from './view-member'
import OwnerInfo from './owner-info'
import SendInvitesNotice from './send-invites-notice'
import { useEditorContext } from '../../../shared/context/editor-context'
import { useProjectContext } from '../../../shared/context/project-context'
import { useSplitTestContext } from '../../../shared/context/split-test-context'
import { useMemo } from 'react'
import { Row } from 'react-bootstrap'
import RecaptchaConditions from '../../../shared/components/recaptcha-conditions'
export default function ShareModalBody() {
const { splitTestVariants } = useSplitTestContext()
const { members, invites, features } = useProjectContext()
const { isProjectOwner } = useEditorContext()
// whether the project has not reached the collaborator limit
const canAddCollaborators = useMemo(() => {
if (!isProjectOwner || !features) {
return false
}
if (features.collaborators === -1) {
// infinite collaborators
return true
}
return members.length + invites.length < (features.collaborators ?? 1)
}, [members, invites, features, isProjectOwner])
switch (splitTestVariants['project-share-modal-paywall']) {
case 'new-copy-top':
return (
<>
{isProjectOwner ? (
<>
>
) : (
)}
{members.map(member =>
isProjectOwner ? (
) : (
)
)}
{invites.map(invite => (
))}
{isProjectOwner && (
<>
>
)}
{!window.ExposedSettings.recaptchaDisabled?.invite && (
)}
>
)
case 'new-copy-middle':
return (
<>
{members.map(member =>
isProjectOwner ? (
) : (
)
)}
{invites.map(invite => (
))}
{isProjectOwner ? (
) : (
)}
{isProjectOwner && (
<>
>
)}
{!window.ExposedSettings.recaptchaDisabled?.invite && (
)}
>
)
case 'new-copy-bottom':
case 'default':
default:
return (
<>
{isProjectOwner && }
{members.map(member =>
isProjectOwner ? (
) : (
)
)}
{invites.map(invite => (
))}
{isProjectOwner ? (
) : (
)}
{!window.ExposedSettings.recaptchaDisabled?.invite && (
)}
>
)
}
}