1
1
import React , { Component } from 'react' ;
2
2
import PropTypes from 'prop-types' ;
3
- import { getIEVersion } from './utils/browser-utils' ;
4
- import baseStyles from './node-renderer-default.scss' ;
5
3
import { isDescendant } from './utils/tree-data-utils' ;
6
-
7
- let styles = baseStyles ;
8
- // Add extra classes in browsers that don't support flex
9
- if ( getIEVersion < 10 ) {
10
- styles = {
11
- ...baseStyles ,
12
- row : `${ styles . row } ${ styles . row_NoFlex } ` ,
13
- rowContents : `${ styles . rowContents } ${ styles . rowContents_NoFlex } ` ,
14
- rowLabel : `${ styles . rowLabel } ${ styles . rowLabel_NoFlex } ` ,
15
- rowToolbar : `${ styles . rowToolbar } ${ styles . rowToolbar_NoFlex } ` ,
16
- } ;
17
- }
4
+ import classnames from './utils/classnames' ;
5
+ import './node-renderer-default.scss' ;
18
6
19
7
class NodeRendererDefault extends Component {
20
8
render ( ) {
@@ -52,26 +40,26 @@ class NodeRendererDefault extends Component {
52
40
// Show a loading symbol on the handle when the children are expanded
53
41
// and yet still defined by a function (a callback to fetch the children)
54
42
handle = (
55
- < div className = { styles . loadingHandle } >
56
- < div className = { styles . loadingCircle } >
57
- < div className = { styles . loadingCirclePoint } />
58
- < div className = { styles . loadingCirclePoint } />
59
- < div className = { styles . loadingCirclePoint } />
60
- < div className = { styles . loadingCirclePoint } />
61
- < div className = { styles . loadingCirclePoint } />
62
- < div className = { styles . loadingCirclePoint } />
63
- < div className = { styles . loadingCirclePoint } />
64
- < div className = { styles . loadingCirclePoint } />
65
- < div className = { styles . loadingCirclePoint } />
66
- < div className = { styles . loadingCirclePoint } />
67
- < div className = { styles . loadingCirclePoint } />
68
- < div className = { styles . loadingCirclePoint } />
43
+ < div className = "rst__loadingHandle" >
44
+ < div className = "rst__loadingCircle" >
45
+ < div className = "rst__loadingCirclePoint" />
46
+ < div className = "rst__loadingCirclePoint" />
47
+ < div className = "rst__loadingCirclePoint" />
48
+ < div className = "rst__loadingCirclePoint" />
49
+ < div className = "rst__loadingCirclePoint" />
50
+ < div className = "rst__loadingCirclePoint" />
51
+ < div className = "rst__loadingCirclePoint" />
52
+ < div className = "rst__loadingCirclePoint" />
53
+ < div className = "rst__loadingCirclePoint" />
54
+ < div className = "rst__loadingCirclePoint" />
55
+ < div className = "rst__loadingCirclePoint" />
56
+ < div className = "rst__loadingCirclePoint" />
69
57
</ div >
70
58
</ div >
71
59
) ;
72
60
} else {
73
61
// Show the handle used to initiate a drag-and-drop
74
- handle = connectDragSource ( < div className = { styles . moveHandle } /> , {
62
+ handle = connectDragSource ( < div className = "rst__moveHandle" /> , {
75
63
dropEffect : 'copy' ,
76
64
} ) ;
77
65
}
@@ -90,7 +78,7 @@ class NodeRendererDefault extends Component {
90
78
type = "button"
91
79
aria-label = { node . expanded ? 'Collapse' : 'Expand' }
92
80
className = {
93
- node . expanded ? styles . collapseButton : styles . expandButton
81
+ node . expanded ? 'rst__collapseButton' : 'rst__expandButton'
94
82
}
95
83
style = { { left : - 0.5 * scaffoldBlockPxWidth } }
96
84
onClick = { ( ) =>
@@ -106,26 +94,24 @@ class NodeRendererDefault extends Component {
106
94
! isDragging && (
107
95
< div
108
96
style = { { width : scaffoldBlockPxWidth } }
109
- className = { styles . lineChildren }
97
+ className = "rst__lineChildren"
110
98
/>
111
99
) }
112
100
</ div >
113
101
) }
114
102
115
- < div className = { styles . rowWrapper } >
103
+ < div className = "rst__rowWrapper" >
116
104
{ /* Set the row preview to be used during drag and drop */ }
117
105
{ connectDragPreview (
118
106
< div
119
- className = {
120
- styles . row +
121
- ( isLandingPadActive ? ` ${ styles . rowLandingPad } ` : '' ) +
122
- ( isLandingPadActive && ! canDrop
123
- ? ` ${ styles . rowCancelPad } `
124
- : '' ) +
125
- ( isSearchMatch ? ` ${ styles . rowSearchMatch } ` : '' ) +
126
- ( isSearchFocus ? ` ${ styles . rowSearchFocus } ` : '' ) +
127
- ( className ? ` ${ className } ` : '' )
128
- }
107
+ className = { classnames (
108
+ 'rst__row' ,
109
+ isLandingPadActive && 'rst__rowLandingPad' ,
110
+ isLandingPadActive && ! canDrop && 'rst__rowCancelPad' ,
111
+ isSearchMatch && 'rst__rowSearchMatch' ,
112
+ isSearchFocus && 'rst__rowSearchFocus' ,
113
+ className
114
+ ) }
129
115
style = { {
130
116
opacity : isDraggedDescendant ? 0.5 : 1 ,
131
117
...style ,
@@ -134,17 +120,17 @@ class NodeRendererDefault extends Component {
134
120
{ handle }
135
121
136
122
< div
137
- className = {
138
- styles . rowContents +
139
- ( ! canDrag ? ` ${ styles . rowContentsDragDisabled } ` : '' )
140
- }
123
+ className = { classnames (
124
+ 'rst__rowContents' ,
125
+ ! canDrag && 'rst__rowContentsDragDisabled'
126
+ ) }
141
127
>
142
- < div className = { styles . rowLabel } >
128
+ < div className = "rst__rowLabel" >
143
129
< span
144
- className = {
145
- styles . rowTitle +
146
- ( node . subtitle ? ` ${ styles . rowTitleWithSubtitle } ` : '' )
147
- }
130
+ className = { classnames (
131
+ 'rst__rowTitle' ,
132
+ node . subtitle && 'rst__rowTitleWithSubtitle'
133
+ ) }
148
134
>
149
135
{ typeof nodeTitle === 'function'
150
136
? nodeTitle ( {
@@ -156,7 +142,7 @@ class NodeRendererDefault extends Component {
156
142
</ span >
157
143
158
144
{ nodeSubtitle && (
159
- < span className = { styles . rowSubtitle } >
145
+ < span className = "rst__rowSubtitle" >
160
146
{ typeof nodeSubtitle === 'function'
161
147
? nodeSubtitle ( {
162
148
node,
@@ -168,11 +154,11 @@ class NodeRendererDefault extends Component {
168
154
) }
169
155
</ div >
170
156
171
- < div className = { styles . rowToolbar } >
157
+ < div className = "rst__rowToolbar" >
172
158
{ buttons . map ( ( btn , index ) => (
173
159
< div
174
160
key = { index } // eslint-disable-line react/no-array-index-key
175
- className = { styles . toolbarButton }
161
+ className = "rst__toolbarButton"
176
162
>
177
163
{ btn }
178
164
</ div >
0 commit comments