Merge pull request #32135 from overleaf/mg-comment-empty-select

Allow adding comments on empty selection

GitOrigin-RevId: 14e742bb563fab99624be860691f1a9d2dabc00e
This commit is contained in:
Malik Glossop
2026-03-20 09:07:28 +00:00
committed by Copybot
parent 504005aa74
commit 6901a2a8de
9 changed files with 238 additions and 13 deletions
@@ -31,6 +31,7 @@ import {
sendContextMenuEvent,
ContextMenuItemSegmentation,
} from '../utils/context-menu-analytics'
import { isCursorOnEmptyLine } from '../utils/is-cursor-on-empty-line'
export const useContextMenuItems = () => {
const view = useCodeMirrorViewContext()
@@ -248,7 +249,7 @@ export const useContextMenuItems = () => {
{
label: t('comment'),
handler: handleComment,
disabled: !hasSelection,
disabled: isCursorOnEmptyLine(state),
show: permissions.comment,
shortcut: getShortcut('insert-comment'),
},
@@ -15,6 +15,7 @@ import { useCallback } from 'react'
import { useTranslation } from 'react-i18next'
import { usePermissionsContext } from '@/features/ide-react/context/permissions-context'
import { language } from '@codemirror/language'
import { isCursorOnEmptyLine } from '@/features/source-editor/utils/is-cursor-on-empty-line'
export const useToolbarMenuBarEditorCommands = () => {
const view = useCodeMirrorViewContext()
@@ -25,6 +26,7 @@ export const useToolbarMenuBarEditorCommands = () => {
const { trackedWrite, comment } = usePermissionsContext()
const languageName = state.facet(language)?.name
const isTeXFile = languageName === 'latex'
const canComment = !isCursorOnEmptyLine(state)
const openFigureModal = useCallback((source: FigureModalSource) => {
window.dispatchEvent(
@@ -174,7 +176,7 @@ export const useToolbarMenuBarEditorCommands = () => {
handler: () => {
commands.addComment('toolbar')
},
disabled: !comment || state.selection.main.empty,
disabled: !comment || !canComment,
},
/************************************
* Format menu
@@ -283,7 +285,7 @@ export const useToolbarMenuBarEditorCommands = () => {
openFigureModal,
trackedWrite,
isTeXFile,
state.selection.main.empty,
canComment,
comment,
])