1
1
/* @jsxImportSource vue */
2
- import { defineComponent , onMounted , provide , toRefs , onBeforeUnmount } from 'vue' ;
2
+ import { defineComponent , onMounted , provide , toRefs } from 'vue' ;
3
3
import type { SetupContext } from 'vue' ;
4
4
import CodeReviewHeader from './components/code-review-header' ;
5
5
import { CommentIcon } from './components/code-review-icons' ;
@@ -14,27 +14,40 @@ import './code-review.scss';
14
14
export default defineComponent ( {
15
15
name : 'DCodeReview' ,
16
16
props : codeReviewProps ,
17
- emits : [ 'foldChange' , 'addComment' , 'afterViewInit' , 'contentRefresh' ] ,
17
+ emits : [ 'foldChange' , 'addComment' , 'afterViewInit' , 'contentRefresh' , 'afterCheckLines' ] ,
18
18
setup ( props : CodeReviewProps , ctx : SetupContext ) {
19
19
const ns = useNamespace ( 'code-review' ) ;
20
20
const { diffType } = toRefs ( props ) ;
21
21
const { renderHtml, reviewContentRef, diffFile, onContentClick } = useCodeReview ( props , ctx ) ;
22
22
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 ) ;
28
34
29
35
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
+ } ) ;
32
43
} ) ;
33
- // 销毁
34
- onBeforeUnmount ( ( ) => {
35
- unCommentKeyDown ( ) ;
44
+ provide ( CodeReviewInjectionKey , {
45
+ diffType,
46
+ reviewContentRef,
47
+ diffInfo : diffFile . value [ 0 ] ,
48
+ isFold,
49
+ rootCtx : ctx ,
36
50
} ) ;
37
- provide ( CodeReviewInjectionKey , { diffType, reviewContentRef, diffInfo : diffFile . value [ 0 ] , isFold, rootCtx : ctx } ) ;
38
51
39
52
return ( ) => (
40
53
< div class = { ns . b ( ) } >
@@ -59,8 +72,7 @@ export default defineComponent({
59
72
class = "comment-icon"
60
73
style = { { left : commentLeft . value + 'px' , top : commentTop . value + 'px' } }
61
74
onClick = { onCommentIconClick }
62
- onMouseleave = { onCommentMouseLeave }
63
- >
75
+ onMouseleave = { onCommentMouseLeave } >
64
76
< CommentIcon />
65
77
</ div >
66
78
) }
0 commit comments