blob: fc4af715c4bc8101ccc29960ed3eced17c334efb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import queryString from 'query-string';
export const getFromQuery = (key, defaultValue = null) => {
let value = queryString.parse(location.search)[key];
return value || defaultValue;
};
export const getAttributesFromQuery = (exclude) => {
// Exclude parameter is used to exclude other query string parameters than
// product attribute filters.
const urlParams = queryString.parse(location.search);
let attributes = [];
Object.keys(urlParams).forEach(key => {
if (exclude.indexOf(key) === -1) {
if (Array.isArray(urlParams[key])) {
const values = urlParams[key];
values.map((valueSlug) => {
attributes.push(`${key}:${valueSlug}`);
});
} else {
const valueSlug = urlParams[key];
attributes.push(`${key}:${valueSlug}`);
}
}
});
return attributes;
};
export const ensureAllowedName = (name, allowed) => {
let origName = name;
if (name && name.startsWith('-')) {
name = name.substr(1, name.length);
}
return allowed.indexOf(name) > -1 ? origName : null;
};
|