Files
notesnook/packages/core/utils/index.js

28 lines
747 B
JavaScript
Raw Normal View History

2020-09-20 09:26:08 +05:00
import fastsort from "fast-sort";
export function groupBy(arr, key, sortSelector) {
if (sortSelector) fastsort(arr).desc(sortSelector);
let groups = { Pinned: [] };
2020-09-15 10:10:05 +05:00
arr.forEach((item) => {
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) {
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;
}