Hide reviewer options for community edition (#25944)

GitOrigin-RevId: 7eba3d193e3a0ab37006cb42dd945ba40703136f
This commit is contained in:
Domagoj Kriskovic
2025-06-27 10:40:25 +02:00
committed by Copybot
parent 6d7b13ac18
commit 04e026904f
8 changed files with 64 additions and 28 deletions

View File

@@ -52,6 +52,7 @@ import OldErrorPane from './error-logs/old-error-pane'
import { useFeatureFlag } from '@/shared/context/split-test-context'
import { useSurveyUrl } from '../hooks/use-survey-url'
import NewErrorLogsPromo from './error-logs/new-error-logs-promo'
import { useProjectContext } from '@/shared/context/project-context'
type RailElement = {
icon: AvailableUnfilledIcon
@@ -111,6 +112,7 @@ export const RailLayout = () => {
setResizing,
} = useRailContext()
const { logEntries } = useCompileContext()
const { features } = useProjectContext()
const errorLogsDisabled = !logEntries
const errorsTabRef = useRef<HTMLAnchorElement>(null)
@@ -149,6 +151,7 @@ export const RailLayout = () => {
icon: 'rate_review',
title: t('review_panel'),
component: null,
hide: !features.trackChangesVisible,
},
{
key: 'chat',
@@ -167,7 +170,7 @@ export const RailLayout = () => {
disabled: errorLogsDisabled,
},
],
[t, errorLogsDisabled, newErrorlogs]
[t, features.trackChangesVisible, newErrorlogs, errorLogsDisabled]
)
const railActions: RailAction[] = useMemo(

View File

@@ -4,10 +4,16 @@ import { ChangesUsersProvider } from './changes-users-context'
import { TrackChangesStateProvider } from './track-changes-state-context'
import { ThreadsProvider } from './threads-context'
import { ReviewPanelViewProvider } from './review-panel-view-context'
import { useProjectContext } from '@/shared/context/project-context'
export const ReviewPanelProviders: FC<React.PropsWithChildren> = ({
children,
}) => {
const { features } = useProjectContext()
if (!features.trackChangesVisible) {
return children
}
return (
<ReviewPanelViewProvider>
<ChangesUsersProvider>

View File

@@ -176,24 +176,34 @@ export default function AddCollaborators({ readOnly }: { readOnly?: boolean }) {
])
const privilegeOptions = useMemo(() => {
return [
const options: {
key: string
label: string
description?: string | null
}[] = [
{
key: 'readAndWrite',
label: t('editor'),
},
{
]
if (features.trackChangesVisible) {
options.push({
key: 'review',
label: t('reviewer'),
description: !features.trackChanges
? t('comment_only_upgrade_for_track_changes')
: null,
},
{
key: 'readOnly',
label: t('viewer'),
},
]
}, [features.trackChanges, t])
})
}
options.push({
key: 'readOnly',
label: t('viewer'),
})
return options
}, [features.trackChanges, features.trackChangesVisible, t])
return (
<OLForm className="add-collabs">

View File

@@ -244,14 +244,22 @@ function SelectPrivilege({
const { features } = useProjectContext()
const privileges = useMemo(
(): Privilege[] => [
{ key: 'owner', label: t('make_owner') },
{ key: 'readAndWrite', label: t('editor') },
{ key: 'review', label: t('reviewer') },
{ key: 'readOnly', label: t('viewer') },
{ key: 'removeAccess', label: t('remove_access') },
],
[t]
(): Privilege[] =>
features.trackChangesVisible
? [
{ key: 'owner', label: t('make_owner') },
{ key: 'readAndWrite', label: t('editor') },
{ key: 'review', label: t('reviewer') },
{ key: 'readOnly', label: t('viewer') },
{ key: 'removeAccess', label: t('remove_access') },
]
: [
{ key: 'owner', label: t('make_owner') },
{ key: 'readAndWrite', label: t('editor') },
{ key: 'readOnly', label: t('viewer') },
{ key: 'removeAccess', label: t('remove_access') },
],
[features.trackChangesVisible, t]
)
const downgradedPseudoPrivilege: Privilege = {

View File

@@ -18,6 +18,7 @@ import {
} from './codemirror-context'
import MathPreviewTooltip from './math-preview-tooltip'
import { useToolbarMenuBarEditorCommands } from '@/features/ide-redesign/hooks/use-toolbar-menu-editor-commands'
import { useProjectContext } from '@/shared/context/project-context'
// TODO: remove this when definitely no longer used
export * from './codemirror-context'
@@ -67,6 +68,7 @@ function CodeMirrorEditor() {
function CodeMirrorEditorComponents() {
useToolbarMenuBarEditorCommands()
const { features } = useProjectContext()
return (
<ReviewPanelProviders>
@@ -83,8 +85,8 @@ function CodeMirrorEditorComponents() {
<CodeMirrorCommandTooltip />
<MathPreviewTooltip />
<ReviewTooltipMenu />
<ReviewPanelNew />
{features.trackChangesVisible && <ReviewTooltipMenu />}
{features.trackChangesVisible && <ReviewPanelNew />}
{sourceEditorComponents.map(
({ import: { default: Component }, path }) => (

View File

@@ -14,6 +14,7 @@ import { LegacyTableDropdown } from './table-inserter-dropdown-legacy'
import { withinFormattingCommand } from '@/features/source-editor/utils/tree-operations/formatting'
import { isSplitTestEnabled } from '@/utils/splitTestUtils'
import { isMac } from '@/shared/utils/os'
import { useProjectContext } from '@/shared/context/project-context'
export const ToolbarItems: FC<{
state: EditorState
@@ -31,6 +32,7 @@ export const ToolbarItems: FC<{
const { t } = useTranslation()
const { toggleSymbolPalette, showSymbolPalette, writefullInstance } =
useEditorContext()
const { features } = useProjectContext()
const isActive = withinFormattingCommand(state)
const symbolPaletteAvailable = getMeta('ol-symbolPaletteAvailable')
@@ -127,13 +129,15 @@ export const ToolbarItems: FC<{
command={commands.wrapInHref}
icon="add_link"
/>
<ToolbarButton
id="toolbar-add-comment"
label={t('add_comment')}
disabled={state.selection.main.empty}
command={commands.addComment}
icon="add_comment"
/>
{features.trackChangesVisible && (
<ToolbarButton
id="toolbar-add-comment"
label={t('add_comment')}
disabled={state.selection.main.empty}
command={commands.addComment}
icon="add_comment"
/>
)}
<ToolbarButton
id="toolbar-ref"
label={t('toolbar_insert_cross_reference')}

View File

@@ -181,6 +181,7 @@ describe('<ReviewPanel />', function () {
removeChangeIds,
},
},
projectFeatures: { trackChangesVisible: true },
})
cy.wrap(scope).as('scope')
@@ -626,7 +627,7 @@ describe('<ReviewPanel /> for free users', function () {
function mountEditor(ownerId = USER_ID) {
const scope = mockScope(undefined, {
permissions: { write: true, trackedWrite: false, comment: true },
projectFeatures: { trackChanges: false },
projectFeatures: { trackChanges: false, trackChangesVisible: true },
projectOwner: {
_id: ownerId,
},

View File

@@ -694,6 +694,7 @@ describe('<ShareProjectModal/>', function () {
features: {
collaborators: 0,
compileGroup: 'standard',
trackChangesVisible: true,
},
},
},
@@ -723,6 +724,7 @@ describe('<ShareProjectModal/>', function () {
...project,
features: {
collaborators: 1,
trackChangesVisible: true,
},
members: [
{