mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-15 14:43:46 +01:00
Merge pull request #24225 from overleaf/em-reviewers-share-modal
Count reviewers towards collaborator limit in share modal GitOrigin-RevId: 27ec3a787124be7590791412d914ec6da78bab35
This commit is contained in:
+4
-2
@@ -52,7 +52,7 @@ export default function AddCollaborators({ readOnly }) {
|
||||
const { reset, selectedItems } = multipleSelectionProps
|
||||
|
||||
useEffect(() => {
|
||||
if (readOnly && privileges === 'readAndWrite') {
|
||||
if (readOnly && privileges !== 'readOnly') {
|
||||
setPrivileges('readOnly')
|
||||
}
|
||||
}, [privileges, readOnly])
|
||||
@@ -171,7 +171,9 @@ export default function AddCollaborators({ readOnly }) {
|
||||
{t('can_edit')}
|
||||
</option>
|
||||
{getMeta('ol-isReviewerRoleEnabled') && (
|
||||
<option value="review">{t('can_review')}</option>
|
||||
<option disabled={readOnly} value="review">
|
||||
{t('can_review')}
|
||||
</option>
|
||||
)}
|
||||
<option value="readOnly">{t('can_view')}</option>
|
||||
</OLFormSelect>
|
||||
|
||||
@@ -16,6 +16,7 @@ import OLCol from '@/features/ui/components/ol/ol-col'
|
||||
import MaterialIcon from '@/shared/components/material-icon'
|
||||
import getMeta from '@/utils/meta'
|
||||
import { useUserContext } from '@/shared/context/user-context'
|
||||
import { isSplitTestEnabled } from '@/utils/splitTestUtils'
|
||||
|
||||
type PermissionsOption = PermissionsLevel | 'removeAccess' | 'downgraded'
|
||||
|
||||
@@ -249,28 +250,41 @@ function SelectPrivilege({
|
||||
}
|
||||
|
||||
function getPrivilegeSubtitle(privilege: PermissionsOption) {
|
||||
if (!hasBeenDowngraded) {
|
||||
return !canAddCollaborators &&
|
||||
privilege === 'readAndWrite' &&
|
||||
value !== 'readAndWrite'
|
||||
? t('limited_to_n_editors_per_project', {
|
||||
count: features.collaborators,
|
||||
})
|
||||
: ''
|
||||
if (!['readAndWrite', 'review'].includes(privilege)) {
|
||||
return ''
|
||||
}
|
||||
|
||||
return privilege === 'readAndWrite'
|
||||
? t('limited_to_n_editors', {
|
||||
if (hasBeenDowngraded) {
|
||||
if (isSplitTestEnabled('reviewer-role')) {
|
||||
return t('limited_to_n_editors_or_reviewers', {
|
||||
count: features.collaborators,
|
||||
})
|
||||
: ''
|
||||
} else {
|
||||
return t('limited_to_n_editors', { count: features.collaborators })
|
||||
}
|
||||
} else if (
|
||||
!canAddCollaborators &&
|
||||
!['readAndWrite', 'review'].includes(value)
|
||||
) {
|
||||
if (isSplitTestEnabled('reviewer-role')) {
|
||||
return t('limited_to_n_editors_or_reviewers_per_project', {
|
||||
count: features.collaborators,
|
||||
})
|
||||
} else {
|
||||
return t('limited_to_n_editors_per_project', {
|
||||
count: features.collaborators,
|
||||
})
|
||||
}
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
function isPrivilegeDisabled(privilege: PermissionsOption) {
|
||||
return (
|
||||
!canAddCollaborators &&
|
||||
privilege === 'readAndWrite' &&
|
||||
(hasBeenDowngraded || value !== 'readAndWrite')
|
||||
['readAndWrite', 'review'].includes(privilege) &&
|
||||
(hasBeenDowngraded || !['readAndWrite', 'review'].includes(value))
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -27,11 +27,11 @@ export default function ShareModalBody() {
|
||||
}
|
||||
|
||||
const editorInvites = invites.filter(
|
||||
invite => invite.privileges === 'readAndWrite'
|
||||
invite => invite.privileges !== 'readOnly'
|
||||
).length
|
||||
|
||||
return (
|
||||
members.filter(member => member.privileges === 'readAndWrite').length +
|
||||
members.filter(member => member.privileges !== 'readOnly').length +
|
||||
editorInvites <
|
||||
(features.collaborators ?? 1)
|
||||
)
|
||||
@@ -67,7 +67,7 @@ export default function ShareModalBody() {
|
||||
}
|
||||
|
||||
return (
|
||||
members.filter(member => member.privileges === 'readAndWrite').length >
|
||||
members.filter(member => member.privileges !== 'readOnly').length >
|
||||
(features.collaborators ?? 1)
|
||||
)
|
||||
}, [features, isProjectOwner, members])
|
||||
|
||||
Reference in New Issue
Block a user