diff --git a/services/web/frontend/js/features/review-panel-new/components/review-mode-switcher.tsx b/services/web/frontend/js/features/review-panel-new/components/review-mode-switcher.tsx index 8d2e2a9237..c3cfea132b 100644 --- a/services/web/frontend/js/features/review-panel-new/components/review-mode-switcher.tsx +++ b/services/web/frontend/js/features/review-panel-new/components/review-mode-switcher.tsx @@ -15,8 +15,10 @@ import { useUserContext } from '@/shared/context/user-context' import { useTranslation } from 'react-i18next' import { usePermissionsContext } from '@/features/ide-react/context/permissions-context' import usePersistedState from '@/shared/hooks/use-persisted-state' +import { sendMB } from '@/infrastructure/event-tracking' +import { useEditorContext } from '@/shared/context/editor-context' -type Mode = 'viewing' | 'reviewing' | 'editing' +type Mode = 'view' | 'review' | 'edit' const useCurrentMode = (): Mode => { const trackChanges = useTrackChangesStateContext() @@ -27,12 +29,12 @@ const useCurrentMode = (): Mode => { const { write, trackedWrite } = usePermissionsContext() if (write && !trackChangesForCurrentUser) { - return 'editing' + return 'edit' } else if (trackedWrite) { - return 'reviewing' + return 'review' } - return 'viewing' + return 'view' } function ReviewModeSwitcher() { @@ -40,6 +42,7 @@ function ReviewModeSwitcher() { const { saveTrackChangesForCurrentUser } = useTrackChangesStateActionsContext() const mode = useCurrentMode() + const { permissionsLevel } = useEditorContext() const { write, trackedWrite } = usePermissionsContext() const showViewOption = !trackedWrite @@ -55,33 +58,48 @@ function ReviewModeSwitcher() { { + sendMB('editing-mode-change', { + role: permissionsLevel, + previousMode: mode, + newMode: 'edit', + }) saveTrackChangesForCurrentUser(false) }} description={t('can_edit_content')} leadingIcon="edit" - active={write && mode === 'editing'} + active={write && mode === 'edit'} > {t('editing')} { + sendMB('editing-mode-change', { + role: permissionsLevel, + previousMode: mode, + newMode: 'review', + }) saveTrackChangesForCurrentUser(true) }} description={t('can_add_tracked_changes_and_comments')} leadingIcon="rate_review" - active={trackedWrite && mode === 'reviewing'} + active={trackedWrite && mode === 'review'} > {t('reviewing')} {showViewOption && ( { + sendMB('editing-mode-change', { + role: permissionsLevel, + previousMode: mode, + newMode: 'view', + }) saveTrackChangesForCurrentUser(true) }} description={t('can_view_content')} leadingIcon="visibility" - active={mode === 'viewing'} + active={mode === 'view'} > {t('viewing')} @@ -99,7 +117,7 @@ const ModeSwitcherToggleButton = forwardRef< const { t } = useTranslation() const mode = useCurrentMode() - if (mode === 'editing') { + if (mode === 'edit') { return ( ) - } else if (mode === 'reviewing') { + } else if (mode === 'review') { return ( viewer) // but show a confirmation button for removing access function handlePrivilegeChange(newPrivileges: PermissionsOption) { + sendMB('collaborator-role-change', { + previousMode: member.privileges, + newMode: newPrivileges, + ownerId: user.id, + }) + setPrivileges(newPrivileges) if (newPrivileges !== 'removeAccess') { commitPrivilegeChange(newPrivileges)