Add virtualized chat pagination (#1080)
This commit is contained in:
@@ -182,10 +182,13 @@ groupChatRoutes.get('/api/hermes/group-chat/rooms/:roomId', async (ctx) => {
|
||||
return
|
||||
}
|
||||
|
||||
const messages = chatServer.getStorage().getMessages(ctx.params.roomId)
|
||||
const offset = ctx.query.offset ? Math.max(0, parseInt(ctx.query.offset as string, 10) || 0) : 0
|
||||
const limit = ctx.query.limit ? Math.max(1, parseInt(ctx.query.limit as string, 10) || 300) : 300
|
||||
const messages = chatServer.getStorage().getMessages(ctx.params.roomId, limit, offset)
|
||||
const total = chatServer.getStorage().getMessageCount(ctx.params.roomId)
|
||||
const agents = chatServer.getStorage().getRoomAgents(ctx.params.roomId)
|
||||
const members = chatServer.getStorage().getRoomMembers(ctx.params.roomId)
|
||||
ctx.body = { room, messages, agents, members }
|
||||
ctx.body = { room, messages, agents, members, total, offset, limit, hasMore: offset + messages.length < total }
|
||||
})
|
||||
|
||||
// List rooms
|
||||
|
||||
Reference in New Issue
Block a user