@@ -22,6 +22,11 @@ const DirectoryNode = styled.span`
2222 vertical-align: middle;
2323` ;
2424
25+ const Container = styled . div `
26+ display: flex;
27+ flex-direction: row;
28+ ` ;
29+
2530interface Props extends RouteComponentProps < MainRouteParams > {
2631 node ?: Tree ;
2732 closeTreePath : ( paths : string ) => void ;
@@ -79,8 +84,11 @@ export class CodeFileTree extends React.Component<Props> {
7984 } ;
8085
8186 public getItemRenderer = ( node : Tree , forceOpen : boolean , flattenFrom ?: Tree ) => ( ) => {
82- const className =
83- this . props . match . params . path === node . path ? 'code-active-file-node' : 'code-file-node' ;
87+ const className = 'code-file-node' ;
88+ let bg = null ;
89+ if ( this . props . match . params . path === node . path ) {
90+ bg = < div className = "code-full-width-file-node" /> ;
91+ }
8492 const onClick = ( ) => {
8593 const path = flattenFrom ? flattenFrom . path ! : node . path ! ;
8694 this . toggleTree ( path , node . type === FileTreeItemType . Directory ) ;
@@ -89,75 +97,92 @@ export class CodeFileTree extends React.Component<Props> {
8997 switch ( node . type ) {
9098 case FileTreeItemType . Directory : {
9199 return (
92- < div
93- data-test-subj = { `codeFileTreeNode-Directory-${ node . path } ` }
94- className = { className }
95- role = "button"
96- onClick = { onClick }
97- >
98- { forceOpen ? (
99- < EuiIcon type = "arrowDown" size = "s" color = "subdued" className = "codeFileTree--icon" />
100- ) : (
101- < EuiIcon type = "arrowRight" size = "s" color = "subdued" className = "codeFileTree--icon" />
102- ) }
103- < EuiIcon type = { forceOpen ? 'folderOpen' : 'folderClosed' } color = "subdued" />
104- < DirectoryNode >
105- < EuiText size = "s" grow = { false } className = "eui-displayInlineBlock" >
106- { `${ node . name } /` }
107- </ EuiText >
108- </ DirectoryNode >
109- </ div >
100+ < Container >
101+ < div
102+ data-test-subj = { `codeFileTreeNode-Directory-${ node . path } ` }
103+ className = { className }
104+ role = "button"
105+ onClick = { onClick }
106+ >
107+ { forceOpen ? (
108+ < EuiIcon type = "arrowDown" size = "s" color = "subdued" className = "codeFileTree--icon" />
109+ ) : (
110+ < EuiIcon
111+ type = "arrowRight"
112+ size = "s"
113+ color = "subdued"
114+ className = "codeFileTree--icon"
115+ />
116+ ) }
117+ < EuiIcon type = { forceOpen ? 'folderOpen' : 'folderClosed' } color = "subdued" />
118+ < DirectoryNode >
119+ < EuiText size = "s" grow = { false } className = "eui-displayInlineBlock" >
120+ { `${ node . name } /` }
121+ </ EuiText >
122+ </ DirectoryNode >
123+ </ div >
124+ { bg }
125+ </ Container >
110126 ) ;
111127 }
112128 case FileTreeItemType . Submodule : {
113129 return (
114- < div
115- data-test-subj = { `codeFileTreeNode-Submodule-${ node . path } ` }
116- onClick = { onClick }
117- className = { classes ( className , 'code-file-tree-file' ) }
118- role = "button"
119- >
120- < EuiIcon type = "submodule" color = "subdued" />
121- < DirectoryNode >
122- < EuiText size = "s" grow = { false } className = "eui-displayInlineBlock" >
123- { node . name }
124- </ EuiText >
125- </ DirectoryNode >
126- </ div >
130+ < Container >
131+ < div
132+ data-test-subj = { `codeFileTreeNode-Submodule-${ node . path } ` }
133+ onClick = { onClick }
134+ className = { classes ( className , 'code-file-tree-file' ) }
135+ role = "button"
136+ >
137+ < EuiIcon type = "submodule" color = "subdued" />
138+ < DirectoryNode >
139+ < EuiText size = "s" grow = { false } className = "eui-displayInlineBlock" >
140+ { node . name }
141+ </ EuiText >
142+ </ DirectoryNode >
143+ </ div >
144+ { bg }
145+ </ Container >
127146 ) ;
128147 }
129148 case FileTreeItemType . Link : {
130149 return (
131- < div
132- data-test-subj = { `codeFileTreeNode-Link-${ node . path } ` }
133- onClick = { onClick }
134- className = { classes ( className , 'code-file-tree-file' ) }
135- role = "button"
136- >
137- < EuiIcon type = "symlink" color = "subdued" />
138- < DirectoryNode >
139- < EuiText size = "s" grow = { false } className = "eui-displayInlineBlock" >
140- { node . name }
141- </ EuiText >
142- </ DirectoryNode >
143- </ div >
150+ < Container >
151+ < div
152+ data-test-subj = { `codeFileTreeNode-Link-${ node . path } ` }
153+ onClick = { onClick }
154+ className = { classes ( className , 'code-file-tree-file' ) }
155+ role = "button"
156+ >
157+ < EuiIcon type = "symlink" color = "subdued" />
158+ < DirectoryNode >
159+ < EuiText size = "s" grow = { false } className = "eui-displayInlineBlock" >
160+ { node . name }
161+ </ EuiText >
162+ </ DirectoryNode >
163+ </ div >
164+ { bg }
165+ </ Container >
144166 ) ;
145167 }
146168 case FileTreeItemType . File : {
147169 return (
148- < div
149- data-test-subj = { `codeFileTreeNode-File-${ node . path } ` }
150- onClick = { onClick }
151- className = { classes ( className , 'code-file-tree-file' ) }
152- role = "button"
153- >
154- < EuiIcon type = "document" color = "subdued" />
155- < DirectoryNode >
156- < EuiText size = "s" grow = { false } className = "eui-displayInlineBlock" >
157- { node . name }
158- </ EuiText >
159- </ DirectoryNode >
160- </ div >
170+ < Container >
171+ < div
172+ data-test-subj = { `codeFileTreeNode-File-${ node . path } ` }
173+ onClick = { onClick }
174+ className = { classes ( className , 'code-file-tree-file' ) }
175+ role = "button"
176+ >
177+ < EuiIcon type = "document" color = "subdued" />
178+ < DirectoryNode >
179+ < EuiText size = "s" grow = { false } className = "eui-displayInlineBlock" >
180+ { node . name }
181+ </ EuiText >
182+ </ DirectoryNode >
183+ </ div >
184+ { bg }
185+ </ Container >
161186 ) ;
162187 }
163188 }
0 commit comments