refac
This commit is contained in:
1 parent
e5a08d5220
commit
8ddf119570
4 files changed
+24
-4
No files matched your search
@@ -694,13 +694,12 @@ class ChatTable:
|
|||||||
await session.commit()
|
await session.commit()
|
||||||
return result.rowcount or 0
|
return result.rowcount or 0
|
||||||
|
|
||||||
async def mark_root_chats_read_by_user_id(self, user_id: str, db: AsyncSession | None = None) -> int:
|
async def mark_chats_read_by_user_id(self, user_id: str, db: AsyncSession | None = None) -> int:
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
result = await session.execute(
|
result = await session.execute(
|
||||||
update(Chat)
|
update(Chat)
|
||||||
.where(
|
.where(
|
||||||
Chat.user_id == user_id,
|
Chat.user_id == user_id,
|
||||||
Chat.folder_id.is_(None),
|
|
||||||
Chat.archived == False,
|
Chat.archived == False,
|
||||||
Chat.meta['internal'].as_boolean().is_not(True),
|
Chat.meta['internal'].as_boolean().is_not(True),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -256,11 +256,14 @@ async def get_session_user_chat_list(
|
|||||||
|
|
||||||
|
|
||||||
@router.post('/read')
|
@router.post('/read')
|
||||||
async def mark_root_chats_read_by_user_id(
|
async def mark_chats_read_by_user_id(
|
||||||
user=Depends(get_verified_user),
|
user=Depends(get_verified_user),
|
||||||
db: AsyncSession = Depends(get_async_session),
|
db: AsyncSession = Depends(get_async_session),
|
||||||
):
|
):
|
||||||
return {'updated_count': await Chats.mark_root_chats_read_by_user_id(user.id, db=db)}
|
return {
|
||||||
|
'updated_count': await Chats.mark_chats_read_by_user_id(user.id, db=db),
|
||||||
|
'folder_unread_counts': await get_folder_unread_counts(user.id, db=db),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
############################
|
############################
|
||||||
|
|||||||
@@ -137,6 +137,7 @@
|
|||||||
upsertChat?: (chat: Record<string, unknown>) => unknown;
|
upsertChat?: (chat: Record<string, unknown>) => unknown;
|
||||||
setChatActive?: (chatId: string, active: boolean) => boolean;
|
setChatActive?: (chatId: string, active: boolean) => boolean;
|
||||||
setChatReadAt?: (chatId: string, lastReadAt: number) => boolean;
|
setChatReadAt?: (chatId: string, lastReadAt: number) => boolean;
|
||||||
|
setAllChatsRead?: () => unknown;
|
||||||
}
|
}
|
||||||
> = {};
|
> = {};
|
||||||
|
|
||||||
@@ -455,7 +456,13 @@
|
|||||||
if (!res) return;
|
if (!res) return;
|
||||||
|
|
||||||
showChatsMenu = false;
|
showChatsMenu = false;
|
||||||
|
if (res.folder_unread_counts) {
|
||||||
|
applyFolderUnreadCounts(res.folder_unread_counts);
|
||||||
|
}
|
||||||
setAllChatsRead();
|
setAllChatsRead();
|
||||||
|
for (const folder of Object.values(folderRegistry)) {
|
||||||
|
folder?.setAllChatsRead?.();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const importChatHandler = async (items, pinned = false, folderId = null) => {
|
const importChatHandler = async (items, pinned = false, folderId = null) => {
|
||||||
|
|||||||
@@ -392,6 +392,17 @@
|
|||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
},
|
||||||
|
setAllChatsRead: () => {
|
||||||
|
if (chats) {
|
||||||
|
chats = sortFolderChats(
|
||||||
|
chats.map((chat) =>
|
||||||
|
!chat.user_id || chat.user_id === $user?.id
|
||||||
|
? { ...chat, last_read_at: chat.updated_at }
|
||||||
|
: chat
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (folderElement) {
|
if (folderElement) {
|
||||||
|
|||||||
Reference in new issue
Block a user