2020-09-15 10:10:05 +05:00
|
|
|
export function groupBy(arr, key) {
|
2020-09-15 10:15:05 +05:00
|
|
|
let groups = { Pinned: [] };
|
2020-09-15 10:10:05 +05:00
|
|
|
arr.forEach((item) => {
|
2020-09-15 10:15:05 +05:00
|
|
|
let groupTitle = item.pinned ? "Pinned" : key(item);
|
2020-09-15 10:10:05 +05:00
|
|
|
let group = groups[groupTitle]
|
|
|
|
|
? groups[groupTitle]
|
|
|
|
|
: (groups[groupTitle] = []);
|
|
|
|
|
group.push(item);
|
|
|
|
|
});
|
2019-12-18 15:40:49 +05:00
|
|
|
|
2020-09-15 10:10:05 +05:00
|
|
|
let items = [];
|
|
|
|
|
for (let group in groups) {
|
|
|
|
|
items = [...items, { title: group, type: "header" }, ...groups[group]];
|
2019-12-18 15:40:49 +05:00
|
|
|
}
|
2020-09-15 10:10:05 +05:00
|
|
|
return items;
|
2019-12-18 15:40:49 +05:00
|
|
|
}
|
2020-03-21 11:15:24 +05:00
|
|
|
|
|
|
|
|
var hexPattern = /([A-F]|[a-f]|\d)*/;
|
|
|
|
|
export function isHex(input) {
|
2020-03-25 12:18:04 +05:00
|
|
|
if (typeof input !== "string") return false;
|
2020-03-21 11:15:24 +05:00
|
|
|
if (!input.match || input.length < 16) return false;
|
|
|
|
|
return input.match(hexPattern)[0] === input;
|
|
|
|
|
}
|