Improved userPresence sorting

This commit is contained in:
Douglas Barone 2021-10-28 10:35:13 -04:00
parent 429313511d
commit a476643d4a

View File

@ -20,17 +20,40 @@ export async function userPresence(_, { search }) {
) || ) ||
user.wifiDevices?.some( user.wifiDevices?.some(
device => device =>
device.ip?.startsWith(search) || device.status != 'OFFLINE' &&
(device.status != 'OFFLINE' && (device.ip?.startsWith(search) ||
(device.apName?.contains(search) || device.apName?.contains(search) ||
device.essid?.contains(search))) device.essid?.contains(search))
) )
) )
: usersWithWifiDevices : usersWithWifiDevices
const sortedUsers = filteredUsers.sort((a, b) => // const sortedUsers = filteredUsers.sort((a, b) =>
a.wifiDevices[0].lastSeen > b.wifiDevices[0].lastSeen ? -1 : 1 // a.wifiDevices[0].lastSeen > b.wifiDevices[0].lastSeen ? -1 : 1
) // )
const sortedUsers = filteredUsers.sort((a, b) => {
if (
(a.wifiDevices[0].status == 'ONLINE' &&
b.wifiDevices[0].status == 'RECENT') ||
(a.wifiDevices[0].status == 'ONLINE' &&
b.wifiDevices[0].status == 'OFFLINE') ||
(a.wifiDevices[0].status == 'RECENT' &&
b.wifiDevices[0].status == 'OFFLINE')
)
return -1
if (
(b.wifiDevices[0].status == 'ONLINE' &&
a.wifiDevices[0].status == 'RECENT') ||
(b.wifiDevices[0].status == 'ONLINE' &&
a.wifiDevices[0].status == 'OFFLINE') ||
(b.wifiDevices[0].status == 'RECENT' &&
a.wifiDevices[0].status == 'OFFLINE')
)
return 1
return 0
})
return sortedUsers return sortedUsers
.map(userPresence => ({ .map(userPresence => ({