Skip to content

Commit 3ff935f

Browse files
Merge pull request OlehDutchenko#15 from alfredriesen/master
support "min-width: 0" expression on mobile-first sort
2 parents 68cebed + a6883aa commit 3ff935f

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

lib/create-sort.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,16 @@ const maxValue = Number.MAX_VALUE;
3131
* @param {string} length
3232
* @return {number}
3333
*/
34-
function _getQueryLength(length) {
35-
length = /(-?\d*\.?\d+)(ch|em|ex|px|rem)/.exec(length);
34+
function _getQueryLength(query) {
35+
let length = /(-?\d*\.?\d+)(ch|em|ex|px|rem)/.exec(query);
36+
37+
if (length === null && (isMinWidth(query) || isMinHeight(query))) {
38+
length = /(\d)/.exec(query);
39+
}
40+
41+
if (length === '0') {
42+
return 0;
43+
}
3644

3745
if (length === null) {
3846
return maxValue;

tests/index.spec.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,17 @@ test(`simple #2. desktop-first`, () => {
100100
expect(received).toBe(expected);
101101
});
102102

103+
test(`simple #3. mobile-first`, () => {
104+
const receivedOrder = ['screen and (min-width: 640px)', 'screen and (min-width: 0)'];
105+
106+
const expectedOrder = ['screen and (min-width: 0)', 'screen and (min-width: 640px)'];
107+
108+
const expected = expectedOrder.join('\n');
109+
const received = receivedOrder.sort(sortCSSmq).join('\n');
110+
111+
expect(received).toBe(expected);
112+
});
113+
103114
test(`without dimension #1. mobile-first`, () => {
104115
const receivedOrder = [
105116
'tv',

0 commit comments

Comments
 (0)