@@ -6,6 +6,8 @@ import RadioButtonCheckedOutlined from "@mui/icons-material/RadioButtonCheckedOu
6
6
import { FileTree } from "utils/filetree" ;
7
7
import set from "lodash/fp/set" ;
8
8
import { TemplateFileTree } from "./TemplateFileTree" ;
9
+ import { Link } from "react-router-dom" ;
10
+ import EditOutlined from "@mui/icons-material/EditOutlined" ;
9
11
10
12
const languageByExtension : Record < string , string > = {
11
13
tf : "hcl" ,
@@ -24,11 +26,15 @@ interface TemplateFilesProps {
24
26
* Files used to compare with current files
25
27
*/
26
28
baseFiles ?: TemplateVersionFiles ;
29
+ versionName : string ;
30
+ templateName : string ;
27
31
}
28
32
29
33
export const TemplateFiles : FC < TemplateFilesProps > = ( {
30
34
currentFiles,
31
35
baseFiles,
36
+ versionName,
37
+ templateName,
32
38
} ) => {
33
39
const filenames = Object . keys ( currentFiles ) ;
34
40
const theme = useTheme ( ) ;
@@ -48,10 +54,6 @@ export const TemplateFiles: FC<TemplateFilesProps> = ({
48
54
[ baseFiles , currentFiles ] ,
49
55
) ;
50
56
51
- const filesWithDiff = filenames . filter (
52
- ( filename ) => fileInfo ( filename ) . hasDiff && false ,
53
- ) ;
54
-
55
57
const fileTree : FileTree = useMemo ( ( ) => {
56
58
let tree : FileTree = { } ;
57
59
for ( const filename of filenames ) {
@@ -63,58 +65,6 @@ export const TemplateFiles: FC<TemplateFilesProps> = ({
63
65
64
66
return (
65
67
< div >
66
- { filesWithDiff . length > 0 && (
67
- < div
68
- css = { {
69
- display : "flex" ,
70
- alignItems : "center" ,
71
- gap : 16 ,
72
- marginBottom : 24 ,
73
- } }
74
- >
75
- < span
76
- css = { ( theme ) => ( {
77
- fontSize : 13 ,
78
- fontWeight : 500 ,
79
- color : theme . roles . warning . fill . outline ,
80
- } ) }
81
- >
82
- { filesWithDiff . length } files have changes
83
- </ span >
84
- < ul
85
- css = { {
86
- listStyle : "none" ,
87
- margin : 0 ,
88
- padding : 0 ,
89
- display : "flex" ,
90
- alignItems : "center" ,
91
- gap : 4 ,
92
- } }
93
- >
94
- { filesWithDiff . map ( ( filename ) => (
95
- < li key = { filename } >
96
- < a
97
- href = { `#${ encodeURIComponent ( filename ) } ` }
98
- css = { {
99
- textDecoration : "none" ,
100
- color : theme . roles . warning . fill . text ,
101
- fontSize : 13 ,
102
- fontWeight : 500 ,
103
- backgroundColor : theme . roles . warning . background ,
104
- display : "inline-block" ,
105
- padding : "0 8px" ,
106
- borderRadius : 4 ,
107
- border : `1px solid ${ theme . roles . warning . fill . solid } ` ,
108
- lineHeight : "1.6" ,
109
- } }
110
- >
111
- { filename }
112
- </ a >
113
- </ li >
114
- ) ) }
115
- </ ul >
116
- </ div >
117
- ) }
118
68
< div css = { { display : "flex" , alignItems : "flex-start" , gap : 32 } } >
119
69
< div css = { styles . sidebar } >
120
70
< TemplateFileTree
@@ -162,6 +112,27 @@ export const TemplateFiles: FC<TemplateFilesProps> = ({
162
112
} }
163
113
/>
164
114
) }
115
+
116
+ < div css = { { marginLeft : "auto" } } >
117
+ < Link
118
+ to = { `/templates/${ templateName } /versions/${ versionName } /edit?path=${ filename } ` }
119
+ css = { {
120
+ display : "flex" ,
121
+ gap : 4 ,
122
+ alignItems : "center" ,
123
+ fontSize : 14 ,
124
+ color : theme . palette . text . secondary ,
125
+ textDecoration : "none" ,
126
+
127
+ "&:hover" : {
128
+ color : theme . palette . text . primary ,
129
+ } ,
130
+ } }
131
+ >
132
+ < EditOutlined css = { { fontSize : "inherit" } } />
133
+ Edit
134
+ </ Link >
135
+ </ div >
165
136
</ header >
166
137
< SyntaxHighlighter
167
138
language = {
0 commit comments