Fix sorting and selected highlight

This commit is contained in:
Cohee
2024-10-31 19:54:24 +02:00
parent 30e9e90b38
commit 547c4f6757

View File

@@ -7053,13 +7053,15 @@ export async function displayPastChats() {
async function displayChats(searchQuery, currentChat, displayName, avatarImg, selected_group) { async function displayChats(searchQuery, currentChat, displayName, avatarImg, selected_group) {
try { try {
const trimExtension = (fileName) => String(fileName).replace('.jsonl', '');
const response = await fetch('/api/chats/search', { const response = await fetch('/api/chats/search', {
method: 'POST', method: 'POST',
headers: getRequestHeaders(), headers: getRequestHeaders(),
body: JSON.stringify({ body: JSON.stringify({
query: searchQuery, query: searchQuery,
avatar_url: selected_group ? null : characters[this_chid].avatar, avatar_url: selected_group ? null : characters[this_chid].avatar,
group_id: selected_group || null group_id: selected_group || null,
}), }),
}); });
@@ -7070,7 +7072,10 @@ async function displayChats(searchQuery, currentChat, displayName, avatarImg, se
const filteredData = await response.json(); const filteredData = await response.json();
$('#select_chat_div').empty(); $('#select_chat_div').empty();
filteredData.sort((a, b) => sortMoments(timestampToMoment(a.last_mes), timestampToMoment(b.last_mes)));
for (const chat of filteredData) { for (const chat of filteredData) {
const isSelected = trimExtension(currentChat) === trimExtension(chat.file_name);
const template = $('#past_chat_template .select_chat_block_wrapper').clone(); const template = $('#past_chat_template .select_chat_block_wrapper').clone();
template.find('.select_chat_block').attr('file_name', chat.file_name); template.find('.select_chat_block').attr('file_name', chat.file_name);
template.find('.avatar img').attr('src', avatarImg); template.find('.avatar img').attr('src', avatarImg);
@@ -7081,11 +7086,11 @@ async function displayChats(searchQuery, currentChat, displayName, avatarImg, se
template.find('.PastChat_cross').attr('file_name', chat.file_name); template.find('.PastChat_cross').attr('file_name', chat.file_name);
template.find('.chat_messages_date').text(timestampToMoment(chat.last_mes).format('lll')); template.find('.chat_messages_date').text(timestampToMoment(chat.last_mes).format('lll'));
$('#select_chat_div').append(template); if (isSelected) {
template.find('.select_chat_block').attr('highlight', String(true));
if (currentChat === chat.file_name) {
$('#select_chat_div').find('.select_chat_block:last').attr('highlight', String(true));
} }
$('#select_chat_div').append(template);
} }
} catch (error) { } catch (error) {
console.error('Error loading chats:', error); console.error('Error loading chats:', error);