User: // Функция для удаления чата и таба
function deleteChat(chatId) {
    // Удаляем историю чата из local storage
    localStorage.removeItem(`chatHistory_${chatId}`);

    // Обновляем массив chatIds
    chatIds = chatIds.filter(id => id !== chatId);
    saveChatHistoryIds(chatIds);

    // Удаляем таб из интерфейса
    const tabToRemove = document.getElementById(chatId);
    if (tabToRemove) {
        tabToRemove.remove();
    }
    //console.log('www', currentChatId, chatId, messages, chatIds, 'qqq');
    // Если удаляемый чат был активным, переключаемся на другой чат
    if (Number(currentChatId) === Number(chatId)) {							//Number(currentChatId) === Number(chatId)
        if (chatIds.length > 0) {
            currentChatId = chatIds[0]; // Переключаемся на первый чат
			console.log('Новый id - ', currentChatId, 'Удаляемый id - ', chatId, messages);
            changechat(currentChatId); // Загружаем новый активный чат
			
			// Делаем новый активный таб активным в интерфейсе
            const newActiveTab = document.getElementById(currentChatId);
            if (newActiveTab) {
                const activeTabs = document.querySelectorAll('.tab.active');
                activeTabs.forEach(tab => {
                    tab.classList.remove('active');
                });
                newActiveTab.classList.add('active');
				
				// Прокручиваем контейнер к новому активному табу
                newActiveTab.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
            }
        } else {
            // Если нет других чатов, создаем новый
            createNewChat();
        }
    }

    console.log(`Чат с ID ${chatId} был удален.`);
	console.log(`После удаления чата. Текущий id - `, currentChatId, messages, 'chatIds - ', chatIds);
}
Эта функция после удаления чата делает активным первый чат в массиве chatIds, т.е. chatIds[0]. Необходимо чтобы активным становился чат предыдущий удаляемому.
Assistant: Чтобы сделать активным чат, который предшествует удаляемому в массиве `chatIds`, вам нужно изменить логику переключения на следующий активный чат. Вместо того чтобы всегда переключаться на первый чат, вы можете определить индекс удаляемого чата в массиве `chatIds` и переключиться на чат, находящийся непосредственно перед ним.

Вот обновленный код функции `deleteChat` с соответствующими изменениями:

```javascript
// Функция для удаления чата и таба
function deleteChat(chatId) {
    // Удаляем историю чата из local storage
    localStorage.removeItem(`chatHistory_${chatId}`);

    // Обновляем массив chatIds
    chatIds = chatIds.filter(id => id !== chatId);
    saveChatHistoryIds(chatIds);
    
    // Удаляем таб из интерфейса
    const tabToRemove = document.getElementById(chatId);
    if (tabToRemove) {
        tabToRemove.remove();
    }

    // Если удаляемый чат был активным, переключаемся на другой чат
    if (Number(currentChatId) === Number(chatId)) {

        const indexOfDeletedChat = chatIds.indexOf(chatId); // Индекс удаляемого чата
        let newChatIndex;

        if (indexOfDeletedChat !== -1) {
            // Если удаляемый чат не был первым в массиве
            if (indexOfDeletedChat > 0) {
                newChatIndex = indexOfDeletedChat - 1; // Чат перед удаляемым
            } else if (chatIds.length > 1) {
                newChatIndex = indexOfDeletedChat + 1; // Если удаляемый чат был первым, переходим ко второму
            } else {
                // Если это был единственный чат
                createNewChat();
                return; // Завершаем функцию после создания нового чата
            }
            currentChatId = chatIds[newChatIndex];
            console.log('Новый id - ', currentChatId, 'Удаляемый id - ', chatId, messages);
            changechat(currentChatId); // Загружаем новый активный чат

            // Делаем новый активный таб активным в интерфейсе
            const newActiveTab = document.getElementById(currentChatId);
            if (newActiveTab) {
                const activeTabs = document.querySelectorAll('.tab.active');
                activeTabs.forEach(tab => {
                    tab.classList.remove('active');
                });
                newActiveTab.classList.add('active');

                // Прокручиваем контейнер к новому активному табу
                newActiveTab.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
            }
        }
    }

    console.log(`Чат с ID ${chatId} был удален.`);
    console.log(`После удаления чата. Текущий id - `, currentChatId, messages, 'chatIds - ', chatIds);
}
```

### Главные изменения:
1. **Индексация:** Код теперь определяет индекс удаляемого чата в массиве `chatIds` с помощью `indexOf(chatId)`.
2. **Логика выбора нового чата:** Установление нового идентификатора чата (`currentChatId`) теперь учитывает индекс удаляемого чата, чтобы переключаться на предыдущий чат или, если удаленный чат является первым, переключаться на следующий.
3. **Обработка случаев:** Если это был единственный чат, создается новый чат.

Теперь после удаления активного чата будет автоматический переход на чат, который был перед ним.
User: chatIds = chatIds.filter(id => id !== chatId);
В этой строке ты удаляешь chatId из массива chatIds 

Но далее в строке
const indexOfDeletedChat = chatIds.indexOf(chatId);
ты пытаешься получить индекс этого элемента в массиве
Assistant: