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(
device =>
device.ip?.startsWith(search) ||
(device.status != 'OFFLINE' &&
(device.apName?.contains(search) ||
device.essid?.contains(search)))
device.status != 'OFFLINE' &&
(device.ip?.startsWith(search) ||
device.apName?.contains(search) ||
device.essid?.contains(search))
)
)
: usersWithWifiDevices
const sortedUsers = filteredUsers.sort((a, b) =>
a.wifiDevices[0].lastSeen > b.wifiDevices[0].lastSeen ? -1 : 1
)
// const sortedUsers = filteredUsers.sort((a, b) =>
// 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
.map(userPresence => ({