소스 검색

Avoid dispatching unnecessary transaction for review panel tooltip (#22524)

* Avoid dispatching unneeded review panel effects
* Remove event listeners

GitOrigin-RevId: 17fec45f660fdd7934aa6ef3202159377902f6a5
Alf Eaton 1 년 전
부모
커밋
c0cbe51828
1개의 변경된 파일4개의 추가작업 그리고 36개의 파일을 삭제
  1. 4 36
      services/web/frontend/js/features/source-editor/extensions/review-tooltip.ts

+ 4 - 36
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 }