1
1
<template >
2
2
<div v-show =" show" class =" tooltip" :title =" item.name" >
3
3
<!-- title instead of tooltip above as the tooltip needs too much work with the current methods, i.e. not being loaded or staying open for "too long"-->
4
- <div class =" item" :class =" item.isFile ? 'filewrapper gt-p-1' : ''" >
4
+ <div class =" item" :class =" [ item.isFile ? 'filewrapper gt-p-1 gt-ac ' : '', selectedFile === genCompleteFileHash(item.file?.NameHash) ? 'selected' : ''] " >
5
5
<!-- Files -->
6
6
<SvgIcon
7
7
v-if =" item.isFile"
34
34
<span class =" gt-ellipsis" >{{ item.name }}</span >
35
35
</div >
36
36
<div v-show =" !collapsed" >
37
- <DiffFileTreeItem v-for =" childItem in item.children" :key =" childItem.name" :item =" childItem" class =" list" />
37
+ <DiffFileTreeItem v-for =" childItem in item.children" :key =" childItem.name" :item =" childItem" class =" list" :selected-file = " selectedFile " />
38
38
</div >
39
39
</div >
40
40
</div >
@@ -54,6 +54,11 @@ export default {
54
54
type: Boolean ,
55
55
required: false ,
56
56
default: true
57
+ },
58
+ selectedFile: {
59
+ type: String ,
60
+ default: ' ' ,
61
+ required: true
57
62
}
58
63
},
59
64
data : () => ({
@@ -76,6 +81,9 @@ export default {
76
81
};
77
82
return diffTypes[pType];
78
83
},
84
+ genCompleteFileHash (hash ) {
85
+ return ` #diff-${ hash} ` ;
86
+ }
79
87
},
80
88
};
81
89
</script >
@@ -115,25 +123,25 @@ span.svg-icon.octicon-diff-renamed {
115
123
padding-left : 18px !important ;
116
124
}
117
125
118
- .item.filewrapper :hover {
126
+ .item.filewrapper :hover , div .directory :hover {
119
127
color : var (--color-text );
120
128
background : var (--color-hover );
121
129
border-radius : 4px ;
122
130
}
123
131
132
+ .item.filewrapper.selected {
133
+ color : var (--color-text );
134
+ background : var (--color-active );
135
+ border-radius : 4px ;
136
+ }
137
+
124
138
div .directory {
125
139
display : grid ;
126
140
grid-template-columns : 18px 20px auto ;
127
141
user-select : none ;
128
142
cursor : pointer ;
129
143
}
130
144
131
- div .directory :hover {
132
- color : var (--color-text );
133
- background : var (--color-hover );
134
- border-radius : 4px ;
135
- }
136
-
137
145
div .list {
138
146
padding-bottom : 0 !important ;
139
147
padding-top : inherit !important ;
0 commit comments