Sort userPresence by lastSeen timestamp and display name

This commit is contained in:
Douglas Barone 2024-01-19 21:22:06 -04:00
parent be7262bbdf
commit 15b8d248a8

View File

@ -11,7 +11,8 @@ export async function userPresence(_, { search, onlyServants }) {
orderBy: { displayName: 'asc' },
include: {
wifiDevices: {
include: { accessPoint: true }
include: { accessPoint: true },
orderBy: { lastSeen: 'desc' }
}
}
})
@ -49,28 +50,26 @@ export async function userPresence(_, { search, onlyServants }) {
}
}
const sortedUsers = filteredUsers
.sort((a, b) => a.displayName.localeCompare(b.displayName))
.sort((a, b) => {
const [aStatus, bStatus] = [
a.wifiDevices[0].status,
b.wifiDevices[0].status
]
if (
(aStatus == 'ONLINE' && bStatus == 'RECENT') ||
(aStatus == 'ONLINE' && bStatus == 'OFFLINE') ||
(aStatus == 'RECENT' && bStatus == 'OFFLINE')
)
return -1
if (
(bStatus == 'ONLINE' && aStatus == 'RECENT') ||
(bStatus == 'ONLINE' && aStatus == 'OFFLINE') ||
(bStatus == 'RECENT' && aStatus == 'OFFLINE')
)
return 1
const sortedUsers = filteredUsers.sort((a, b) => {
const [aStatus, bStatus] = [
a.wifiDevices[0].status,
b.wifiDevices[0].status
]
if (
(aStatus == 'ONLINE' && bStatus == 'RECENT') ||
(aStatus == 'ONLINE' && bStatus == 'OFFLINE') ||
(aStatus == 'RECENT' && bStatus == 'OFFLINE')
)
return -1
if (
(bStatus == 'ONLINE' && aStatus == 'RECENT') ||
(bStatus == 'ONLINE' && aStatus == 'OFFLINE') ||
(bStatus == 'RECENT' && aStatus == 'OFFLINE')
)
return 1
return 0
})
return a.displayName.localeCompare(b.displayName)
})
const userPresence = sortedUsers
.map(userPresence => ({