1- import { defineComponent , onMounted , provide , toRefs } from 'vue' ;
1+ /* @jsxImportSource vue */
2+ import { defineComponent , onMounted , provide , toRefs , onBeforeUnmount } from 'vue' ;
23import type { SetupContext } from 'vue' ;
34import CodeReviewHeader from './components/code-review-header' ;
45import { CommentIcon } from './components/code-review-icons' ;
@@ -19,13 +20,20 @@ export default defineComponent({
1920 const { diffType } = toRefs ( props ) ;
2021 const { renderHtml, reviewContentRef, diffFile, onContentClick } = useCodeReview ( props , ctx ) ;
2122 const { isFold, toggleFold } = useCodeReviewFold ( props , ctx ) ;
22- const { commentLeft, commentTop, mouseEvent, onCommentMouseLeave, onCommentIconClick, insertComment, removeComment } =
23- useCodeReviewComment ( reviewContentRef , props , ctx ) ;
23+ const { commentLeft, commentTop,
24+ mouseEvent, onCommentMouseLeave,
25+ onCommentIconClick, onCommentKeyDown,
26+ unCommentKeyDown, insertComment,
27+ removeComment, updateCheckedLineClass } = useCodeReviewComment ( reviewContentRef , props , ctx ) ;
2428
2529 onMounted ( ( ) => {
26- ctx . emit ( 'afterViewInit' , { toggleFold, insertComment, removeComment } ) ;
30+ ctx . emit ( 'afterViewInit' , { toggleFold, insertComment, removeComment, updateCheckedLineClass } ) ;
31+ onCommentKeyDown ( ) ;
32+ } ) ;
33+ // 销毁
34+ onBeforeUnmount ( ( ) => {
35+ unCommentKeyDown ( ) ;
2736 } ) ;
28-
2937 provide ( CodeReviewInjectionKey , { diffType, reviewContentRef, diffInfo : diffFile . value [ 0 ] , isFold, rootCtx : ctx } ) ;
3038
3139 return ( ) => (
@@ -51,7 +59,8 @@ export default defineComponent({
5159 class = "comment-icon"
5260 style = { { left : commentLeft . value + 'px' , top : commentTop . value + 'px' } }
5361 onClick = { onCommentIconClick }
54- onMouseleave = { onCommentMouseLeave } >
62+ onMouseleave = { onCommentMouseLeave }
63+ >
5564 < CommentIcon />
5665 </ div >
5766 ) }
0 commit comments