11/* @jsxImportSource vue */
2- import { defineComponent , onMounted , provide , toRefs , onBeforeUnmount } from 'vue' ;
2+ import { defineComponent , onMounted , provide , toRefs } from 'vue' ;
33import type { SetupContext } from 'vue' ;
44import CodeReviewHeader from './components/code-review-header' ;
55import { CommentIcon } from './components/code-review-icons' ;
@@ -14,27 +14,40 @@ import './code-review.scss';
1414export default defineComponent ( {
1515 name : 'DCodeReview' ,
1616 props : codeReviewProps ,
17- emits : [ 'foldChange' , 'addComment' , 'afterViewInit' , 'contentRefresh' ] ,
17+ emits : [ 'foldChange' , 'addComment' , 'afterViewInit' , 'contentRefresh' , 'afterCheckLines' ] ,
1818 setup ( props : CodeReviewProps , ctx : SetupContext ) {
1919 const ns = useNamespace ( 'code-review' ) ;
2020 const { diffType } = toRefs ( props ) ;
2121 const { renderHtml, reviewContentRef, diffFile, onContentClick } = useCodeReview ( props , ctx ) ;
2222 const { isFold, toggleFold } = useCodeReviewFold ( props , ctx ) ;
23- const { commentLeft, commentTop,
24- mouseEvent, onCommentMouseLeave,
25- onCommentIconClick, onCommentKeyDown,
26- unCommentKeyDown, insertComment,
27- removeComment, updateCheckedLineClass, clearCheckedLines } = useCodeReviewComment ( reviewContentRef , props , ctx ) ;
23+ const {
24+ commentLeft,
25+ commentTop,
26+ mouseEvent,
27+ onCommentMouseLeave,
28+ onCommentIconClick,
29+ insertComment,
30+ removeComment,
31+ updateCheckedLineClass,
32+ clearCheckedLines,
33+ } = useCodeReviewComment ( reviewContentRef , props , ctx ) ;
2834
2935 onMounted ( ( ) => {
30- ctx . emit ( 'afterViewInit' , { toggleFold, insertComment, removeComment, updateCheckedLineClass, clearCheckedLines } ) ;
31- onCommentKeyDown ( ) ;
36+ ctx . emit ( 'afterViewInit' , {
37+ toggleFold,
38+ insertComment,
39+ removeComment,
40+ updateCheckedLineClass,
41+ clearCheckedLines,
42+ } ) ;
3243 } ) ;
33- // 销毁
34- onBeforeUnmount ( ( ) => {
35- unCommentKeyDown ( ) ;
44+ provide ( CodeReviewInjectionKey , {
45+ diffType,
46+ reviewContentRef,
47+ diffInfo : diffFile . value [ 0 ] ,
48+ isFold,
49+ rootCtx : ctx ,
3650 } ) ;
37- provide ( CodeReviewInjectionKey , { diffType, reviewContentRef, diffInfo : diffFile . value [ 0 ] , isFold, rootCtx : ctx } ) ;
3851
3952 return ( ) => (
4053 < div class = { ns . b ( ) } >
@@ -59,8 +72,7 @@ export default defineComponent({
5972 class = "comment-icon"
6073 style = { { left : commentLeft . value + 'px' , top : commentTop . value + 'px' } }
6174 onClick = { onCommentIconClick }
62- onMouseleave = { onCommentMouseLeave }
63- >
75+ onMouseleave = { onCommentMouseLeave } >
6476 < CommentIcon />
6577 </ div >
6678 ) }
0 commit comments