From c0cbe518283b531843bcfae3964cc0db34a69185 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Mon, 16 Dec 2024 10:12:55 +0000 Subject: [PATCH] Avoid dispatching unnecessary transaction for review panel tooltip (#22524) * Avoid dispatching unneeded review panel effects * Remove event listeners GitOrigin-RevId: 17fec45f660fdd7934aa6ef3202159377902f6a5 --- .../extensions/review-tooltip.ts | 40 ++----------------- 1 file changed, 4 insertions(+), 36 deletions(-) diff --git a/services/web/frontend/js/features/source-editor/extensions/review-tooltip.ts b/services/web/frontend/js/features/source-editor/extensions/review-tooltip.ts index 1dca2689c4..e614e35bb6 100644 --- a/services/web/frontend/js/features/source-editor/extensions/review-tooltip.ts +++ b/services/web/frontend/js/features/source-editor/extensions/review-tooltip.ts @@ -41,31 +41,7 @@ export const reviewTooltip = (): Extension => { return [] } - return [ - reviewTooltipTheme, - reviewTooltipStateField, - EditorView.updateListener.of(update => { - if (update.selectionSet && !update.state.selection.main.empty) { - update.view.dispatch({ - effects: textSelectedEffect.of(null), - }) - } else if ( - !update.startState.selection.main.empty && - update.state.selection.main.empty - ) { - update.view.dispatch({ - effects: removeReviewPanelTooltipEffect.of(null), - }) - } - }), - EditorView.domEventHandlers({ - mousedown(event, view) { - view.dispatch({ - effects: removeReviewPanelTooltipEffect.of(null), - }) - }, - }), - ] + return [reviewTooltipTheme, reviewTooltipStateField] } export const reviewTooltipStateField = StateField.define<{ @@ -82,10 +58,6 @@ export const reviewTooltipStateField = StateField.define<{ addCommentRanges = addCommentRanges.map(tr.changes) for (const effect of tr.effects) { - if (effect.is(removeReviewPanelTooltipEffect)) { - return { tooltip: null, addCommentRanges } - } - if (effect.is(removeNewCommentRangeEffect)) { const rangeToRemove = effect.value addCommentRanges = addCommentRanges.update({ @@ -102,14 +74,10 @@ export const reviewTooltipStateField = StateField.define<{ add: [rangeToAdd], }) } + } - if (effect.is(textSelectedEffect)) { - tooltip = buildTooltip(tr.state) - } - - if (tooltip && tr.state.selection.main.empty) { - tooltip = null - } + if (tr.selection) { + tooltip = buildTooltip(tr.state) } return { tooltip, addCommentRanges }