Focus on send textarea on opening temp chat

This commit is contained in:
Cohee
2025-05-13 20:28:57 +03:00
parent 6a394c0c3e
commit 2b93fd37e3

View File

@@ -30,6 +30,9 @@ import { sortMoments, timestampToMoment } from './utils.js';
const assistantAvatarKey = 'assistant'; const assistantAvatarKey = 'assistant';
const defaultAssistantAvatar = 'default_Assistant.png'; const defaultAssistantAvatar = 'default_Assistant.png';
const DEFAULT_DISPLAYED = 5;
const MAX_DISPLAYED = 20;
export function getPermanentAssistantAvatar() { export function getPermanentAssistantAvatar() {
const assistantAvatar = accountStorage.getItem(assistantAvatarKey); const assistantAvatar = accountStorage.getItem(assistantAvatarKey);
if (assistantAvatar === null) { if (assistantAvatar === null) {
@@ -78,6 +81,7 @@ function sendAssistantMessage() {
async function sendWelcomePanel() { async function sendWelcomePanel() {
try { try {
const chatElement = document.getElementById('chat'); const chatElement = document.getElementById('chat');
const sendTextArea = document.getElementById('send_textarea');
if (!chatElement) { if (!chatElement) {
console.error('Chat element not found'); console.error('Chat element not found');
return; return;
@@ -104,7 +108,7 @@ async function sendWelcomePanel() {
}); });
}); });
root.querySelectorAll('.hideRecentChats').forEach((button) => { root.querySelectorAll('.hideRecentChats').forEach((button) => {
button.addEventListener('click', () =>{ button.addEventListener('click', () => {
root.classList.add(recentHiddenClass); root.classList.add(recentHiddenClass);
accountStorage.setItem(recentHiddenKey, 'true'); accountStorage.setItem(recentHiddenKey, 'true');
}); });
@@ -134,8 +138,11 @@ async function sendWelcomePanel() {
}); });
}); });
fragment.querySelectorAll('button.openTemporaryChat').forEach((button) => { fragment.querySelectorAll('button.openTemporaryChat').forEach((button) => {
button.addEventListener('click', () => { button.addEventListener('click', async () => {
void newAssistantChat({ temporary: true }); await newAssistantChat({ temporary: true });
if (sendTextArea instanceof HTMLTextAreaElement) {
sendTextArea.focus();
}
}); });
}); });
fragment.querySelectorAll('.recentChat.group').forEach((groupChat) => { fragment.querySelectorAll('.recentChat.group').forEach((groupChat) => {
@@ -259,8 +266,8 @@ async function getRecentChats() {
data.sort((a, b) => sortMoments(timestampToMoment(a.last_mes), timestampToMoment(b.last_mes))) data.sort((a, b) => sortMoments(timestampToMoment(a.last_mes), timestampToMoment(b.last_mes)))
.map(chat => ({ chat, character: characters.find(x => x.avatar === chat.avatar), group: groups.find(x => x.id === chat.group) })) .map(chat => ({ chat, character: characters.find(x => x.avatar === chat.avatar), group: groups.find(x => x.id === chat.group) }))
.filter(t => t.character || t.group) .filter(t => t.character || t.group)
.slice(0, MAX_DISPLAYED)
.forEach(({ chat, character, group }, index) => { .forEach(({ chat, character, group }, index) => {
const DEFAULT_DISPLAYED = 5;
const chatTimestamp = timestampToMoment(chat.last_mes); const chatTimestamp = timestampToMoment(chat.last_mes);
chat.char_name = character?.name || group?.name || ''; chat.char_name = character?.name || group?.name || '';
chat.date_short = chatTimestamp.format('l'); chat.date_short = chatTimestamp.format('l');
@@ -388,7 +395,7 @@ export function initWelcomeScreen() {
eventSource.makeFirst(event, openWelcomeScreen); eventSource.makeFirst(event, openWelcomeScreen);
} }
eventSource.on(event_types.CHARACTER_MANAGEMENT_DROPDOWN, (target) =>{ eventSource.on(event_types.CHARACTER_MANAGEMENT_DROPDOWN, (target) => {
if (target !== 'set_as_assistant') { if (target !== 'set_as_assistant') {
return; return;
} }