mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-11-15 11:12:16 -05:00
21 lines
759 B
JavaScript
21 lines
759 B
JavaScript
// Queue entries are complete display records. No browser-side user lookup or
|
|
// naming fallback is needed, including when the queue comes from another server.
|
|
function describeQueue(socketIds, currentId, users) {
|
|
const byId = new Map(users.map((user) => [user.socketId, user]));
|
|
const currentIndex = currentId ? socketIds.indexOf(currentId) : -1;
|
|
return {
|
|
queue: socketIds.map((socketId) => {
|
|
const user = byId.get(socketId);
|
|
return {
|
|
socketId,
|
|
name: user?.nickname || user?.name || socketId.slice(0, 6) || 'unknown',
|
|
role: user?.role || null,
|
|
};
|
|
}),
|
|
currentId,
|
|
nextId: socketIds.length > 1 ? socketIds[(currentIndex + 1) % socketIds.length] : null,
|
|
};
|
|
}
|
|
|
|
module.exports = { describeQueue };
|