// https://github.com/netlify-labs/oauth-example/blob/master/source/utils/sort.js // License MIT import objSize from './objsize'; export function matchText(search, text) { if (!text || !search) { return false } return text.toLowerCase().indexOf(search.toLowerCase()) > -1 } export function sortByDate(dateType, order) { return function (a, b) { const timeA = new Date(a[dateType]).getTime() const timeB = new Date(b[dateType]).getTime() if (order === 'asc') { return timeA - timeB } // default 'desc' descending order return timeB - timeA } } export function sortByName(key, order) { return function (a, b) { if (order === 'asc') { if (a[key] < b[key]) return -1 if (a[key] > b[key]) return 1 } if (a[key] > b[key]) return -1 if (a[key] < b[key]) return 1 return 0 } } export function sortByPages(key, order) { return function (a, b) { const pagesA = JSON.parse(a[key]); const pagesB = JSON.parse(b[key]); if (order === 'desc') { if (pagesA.length < pagesB.length) return -1 if (pagesA.length > pagesB.length) return 1 } if (pagesA.length > pagesB.length) return -1 if (pagesA.length < pagesB.length) return 1 return 0 } } export function sortBySize(order) { return function (a, b) { const sizeA = objSize(a); const sizeB = objSize(b); if (order === 'asc') { if (sizeA < sizeB) return -1 if (sizeA > sizeB) return 1 } if (sizeA > sizeB) return -1 if (sizeA < sizeB) return 1 return 0 } }