Optimize generateResults function codes
Signed-off-by: Ajay Bura <ajbura@gmail.com>
This commit is contained in:
parent
9c8c839657
commit
f291c74f13
1 changed files with 19 additions and 25 deletions
|
@ -91,33 +91,27 @@ function Search() {
|
||||||
const generateResults = (term) => {
|
const generateResults = (term) => {
|
||||||
const prefix = term.match(/^[#@*]/)?.[0];
|
const prefix = term.match(/^[#@*]/)?.[0];
|
||||||
|
|
||||||
if (term.length === 1) {
|
if (term.length > 1) {
|
||||||
const { roomList } = initMatrix;
|
|
||||||
const spaceIds = [...roomList.spaces];
|
|
||||||
const roomIds = [...roomList.rooms];
|
|
||||||
const directIds = [...roomList.directs];
|
|
||||||
|
|
||||||
if (prefix === '*') {
|
|
||||||
const mappedIds = mapRoomIds(spaceIds.sort(roomIdByActivity));
|
|
||||||
asyncSearch.setup(mappedIds, { keys: 'name', isContain: true, limit: 20 });
|
|
||||||
handleSearchResults(mappedIds, '*');
|
|
||||||
} else if (prefix === '#') {
|
|
||||||
const mappedIds = mapRoomIds(roomIds.sort(roomIdByActivity));
|
|
||||||
asyncSearch.setup(mappedIds, { keys: 'name', isContain: true, limit: 20 });
|
|
||||||
handleSearchResults(mappedIds, '#');
|
|
||||||
} else if (prefix === '@') {
|
|
||||||
const mappedIds = mapRoomIds(directIds.sort(roomIdByActivity));
|
|
||||||
asyncSearch.setup(mappedIds, { keys: 'name', isContain: true, limit: 20 });
|
|
||||||
handleSearchResults(mappedIds, '@');
|
|
||||||
} else {
|
|
||||||
const ids = roomIds.concat(directIds, spaceIds);
|
|
||||||
const mappedIds = mapRoomIds(ids.sort(roomIdByActivity));
|
|
||||||
asyncSearch.setup(mappedIds, { keys: 'name', isContain: true, limit: 20 });
|
|
||||||
asyncSearch.search(term);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
asyncSearch.search(prefix ? term.slice(1) : term);
|
asyncSearch.search(prefix ? term.slice(1) : term);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const { spaces, rooms, directs } = initMatrix.roomList;
|
||||||
|
let ids = null;
|
||||||
|
|
||||||
|
if (prefix) {
|
||||||
|
if (prefix === '#') ids = [...rooms];
|
||||||
|
else if (prefix === '@') ids = [...directs];
|
||||||
|
else ids = [...spaces];
|
||||||
|
} else {
|
||||||
|
ids = [...rooms].concat([...directs], [...spaces]);
|
||||||
|
}
|
||||||
|
|
||||||
|
ids.sort(roomIdByActivity);
|
||||||
|
const mappedIds = mapRoomIds(ids);
|
||||||
|
asyncSearch.setup(mappedIds, { keys: 'name', isContain: true, limit: 20 });
|
||||||
|
if (prefix) handleSearchResults(mappedIds, prefix);
|
||||||
|
else asyncSearch.search(term);
|
||||||
};
|
};
|
||||||
|
|
||||||
const loadRecentRooms = () => {
|
const loadRecentRooms = () => {
|
||||||
|
|
Loading…
Reference in a new issue