@@ -28,8 +28,13 @@ define([
28
28
} ,
29
29
// listed in ascending order
30
30
elementWidthModifierClasses : {
31
- '_micro-ui' : 130 ,
32
- '_compact-ui' : 440
31
+ '_micro-ui' : {
32
+ maxWidth : 130
33
+ } ,
34
+ '_compact-ui' : {
35
+ minWidth : 131 ,
36
+ maxWidth : 440
37
+ }
33
38
} ,
34
39
translations : {
35
40
allowedFileTypes : $t ( 'Allowed file types' ) ,
@@ -160,7 +165,10 @@ define([
160
165
* Adds the appropriate ui state class to the upload control area based on the current rendered size
161
166
*/
162
167
updateResponsiveClasses : function ( ) {
163
- var modifierClass ;
168
+ var classesToAdd = [ ] ,
169
+ classConfig ,
170
+ elementWidth = this . $uploadArea . width ( ) ,
171
+ modifierClass ;
164
172
165
173
if ( ! this . $uploadArea . is ( ':visible' ) ) {
166
174
return ;
@@ -169,11 +177,24 @@ define([
169
177
this . $uploadArea . removeClass ( Object . keys ( this . elementWidthModifierClasses ) . join ( ' ' ) ) ;
170
178
171
179
for ( modifierClass in this . elementWidthModifierClasses ) {
172
- if ( this . $uploadArea . width ( ) < this . elementWidthModifierClasses [ modifierClass ] ) {
173
- this . $uploadArea . addClass ( modifierClass ) ;
174
- break ;
180
+ if ( ! this . elementWidthModifierClasses . hasOwnProperty ( modifierClass ) ) {
181
+ continue ;
182
+ }
183
+
184
+ classConfig = this . elementWidthModifierClasses [ modifierClass ] ;
185
+
186
+ if ( classConfig . minWidth && classConfig . maxWidth &&
187
+ ( classConfig . minWidth <= elementWidth && elementWidth <= classConfig . maxWidth ) ||
188
+ classConfig . minWidth && ! classConfig . maxWidth && classConfig . minWidth <= elementWidth ||
189
+ classConfig . maxWidth && ! classConfig . minWidth && elementWidth <= classConfig . maxWidth
190
+ ) {
191
+ classesToAdd . push ( modifierClass ) ;
175
192
}
176
193
}
194
+
195
+ if ( classesToAdd . length ) {
196
+ this . $uploadArea . addClass ( classesToAdd . join ( ' ' ) ) ;
197
+ }
177
198
}
178
199
} ) ;
179
200
} ) ;
0 commit comments