fix(dashboard): improve slow search when sorting by a date field
This commit is contained in:
parent
b13659817d
commit
0b20fd7730
@ -1,6 +1,5 @@
|
|||||||
import type { Group, Member } from '../../api/types';
|
import type { Group, Member } from '../../api/types';
|
||||||
import type { ListOptions, PageOptions } from './types';
|
import type { ListOptions, PageOptions } from './types';
|
||||||
import moment from 'moment';
|
|
||||||
|
|
||||||
export function filterList<T extends Member|Group>(list: T[], options: ListOptions, type?: string): T[] {
|
export function filterList<T extends Member|Group>(list: T[], options: ListOptions, type?: string): T[] {
|
||||||
let searchedList = search(list, options);
|
let searchedList = search(list, options);
|
||||||
@ -105,11 +104,10 @@ function sort<T extends Member|Group>(list: T[], options: ListOptions): T[] {
|
|||||||
if (aa === null) return 1;
|
if (aa === null) return 1;
|
||||||
if (bb === null) return -1;
|
if (bb === null) return -1;
|
||||||
|
|
||||||
let aBirthday = moment(aa.slice(5, aa.length), "MM-DD", true);
|
let aBirthday = aa.slice(5, aa.length);
|
||||||
let bBirthday = moment(bb.slice(5, bb.length), "MM-DD", true);
|
let bBirthday = bb.slice(5, bb.length);
|
||||||
|
|
||||||
if (aBirthday.isAfter(bBirthday)) return 1;
|
return aBirthday.localeCompare(bBirthday);
|
||||||
if (aBirthday.isBefore(bBirthday)) return -1;
|
|
||||||
});
|
});
|
||||||
} else if (options.sort === 'created') {
|
} else if (options.sort === 'created') {
|
||||||
newList = [...list].sort((a, b) => {
|
newList = [...list].sort((a, b) => {
|
||||||
@ -121,11 +119,7 @@ function sort<T extends Member|Group>(list: T[], options: ListOptions): T[] {
|
|||||||
if (aa === null) return 1;
|
if (aa === null) return 1;
|
||||||
if (bb === null) return -1;
|
if (bb === null) return -1;
|
||||||
|
|
||||||
let aCreated = moment(aa);
|
return aa.localeCompare(bb);
|
||||||
let bCreated = moment(bb);
|
|
||||||
|
|
||||||
if (aCreated.isAfter(bCreated)) return 1;
|
|
||||||
if (aCreated.isBefore(bCreated)) return -1;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return newList;
|
return newList;
|
||||||
|
Loading…
Reference in New Issue
Block a user