This commit is contained in:
Timothy Jaeryang Baek 2024-12-23 00:31:33 -07:00
parent 4c756b5501
commit 76c8602324
3 changed files with 9 additions and 14 deletions

View File

@ -136,7 +136,9 @@ class MessageUserModel(MessageModel):
@router.get("/{id}/messages", response_model=list[MessageUserModel])
async def get_channel_messages(id: str, page: int = 1, user=Depends(get_verified_user)):
async def get_channel_messages(
id: str, skip: int = 0, limit: int = 50, user=Depends(get_verified_user)
):
channel = Channels.get_channel_by_id(id)
if not channel:
raise HTTPException(
@ -148,9 +150,6 @@ async def get_channel_messages(id: str, page: int = 1, user=Depends(get_verified
status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT()
)
limit = 50
skip = (page - 1) * limit
message_list = Messages.get_messages_by_channel_id(id, skip, limit)
users = {}

View File

@ -166,10 +166,10 @@ export const deleteChannelById = async (token: string = '', channel_id: string)
}
export const getChannelMessages = async (token: string = '', channel_id: string, page: number = 1) => {
export const getChannelMessages = async (token: string = '', channel_id: string, skip: number = 0, limit: number = 50) => {
let error = null;
const res = await fetch(`${WEBUI_API_BASE_URL}/channels/${channel_id}/messages?page=${page}`, {
const res = await fetch(`${WEBUI_API_BASE_URL}/channels/${channel_id}/messages?skip=${skip}&limit=${limit}`, {
method: 'GET',
headers: {
Accept: 'application/json',

View File

@ -16,7 +16,6 @@
let messagesContainerElement = null;
let top = false;
let page = 1;
let channel = null;
let messages = null;
@ -31,7 +30,6 @@
const initHandler = async () => {
top = false;
page = 1;
messages = null;
channel = null;
@ -40,7 +38,7 @@
});
if (channel) {
messages = await getChannelMessages(localStorage.token, id, page);
messages = await getChannelMessages(localStorage.token, id, 0);
if (messages) {
messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
@ -117,16 +115,14 @@
{messages}
{top}
onLoad={async () => {
page += 1;
const newMessages = await getChannelMessages(localStorage.token, id, messages.length);
const newMessages = await getChannelMessages(localStorage.token, id, page);
messages = [...messages, ...newMessages];
if (newMessages.length === 0) {
if (newMessages.length < 50) {
top = true;
return;
}
messages = [...messages, ...newMessages];
}}
/>
{/key}