diff src/chat.js @ 29:505185272dd7

edit chat
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 02 Aug 2025 22:39:48 -0600
parents 99b71a377f2c
children 1e7d855afde3
line wrap: on
line diff
--- a/src/chat.js	Sat Aug 02 20:04:35 2025 -0600
+++ b/src/chat.js	Sat Aug 02 22:39:48 2025 -0600
@@ -1,20 +1,21 @@
 'use strict';
 
-function openRenameChat(name) {
-	let dialog = document.querySelector('dialog[rename]');
-	dialog.querySelector('input[name=name]').value = name;
+let chat;
+
+function setChat(newChat) {
+	chat = newChat;
+	document.querySelector('[content] [name]').textContent = chat.name;
+}
+
+function editChat(name) {
+	let dialog = document.querySelector('dialog[edit]');
+	dialog.querySelector('input[name=name]').value = chat.name;
 	dialog.showModal();
 }
 
-function renameChat() {
-	ajax(`rename_chat.js?chat=${chatId}`);
-}
-
-function saveRenameChat() {
-	let dialog = document.querySelector('dialog[rename]');
-	let name = dialog.querySelector('input[name=name]').value;
-	ajax(`save_rename_chat.js?chat=${chatId}&name=${encodeURIComponent(name)}`);
-	dialog.close();
+function saveChat(form) {
+	closeModal(form);
+	ajaxForm('save_chat.js',form);
 }
 
 function deleteChat() {
@@ -24,7 +25,7 @@
 
 function doDeleteChat(el) {
 	closeModal(el);
-	ajax(`delete_chat.js?chat=${chatId}`);
+	ajax(`delete_chat.js?chat=${chat.id}`);
 }
 
 function systemPrompt() {
@@ -48,6 +49,10 @@
 	}
 }
 
+function handleChatMarkdown() {
+	handleMarkdown(chat.language_region);
+}
+
 function scrollToEnd() {
 	window.scrollTo(0, document.body.scrollHeight);
 }
@@ -55,7 +60,7 @@
 function updateAi(html) {
 	hideWaitingAiIcon();
 	document.querySelector('div[messages]').insertAdjacentHTML('beforeend',html);
-	handleMarkdown();
+	handleChatMarkdown();
 	document.querySelector('textarea').focus();
 	scrollToEnd();
 	playLastMessage();
@@ -78,12 +83,12 @@
 	textarea.parentNode.scrollIntoViewIfNeeded(false);
 	if( !audio )
 		audio = document.querySelector('div[buttons] audio');
-	audio.src = `/tts.mp3?lang=${lang}&text=${encodeURIComponent(textarea.value)}`;
+	audio.src = `/tts.mp3?lang=${chat.language_region}&text=${encodeURIComponent(textarea.value)}`;
 }
 
 function askAi() {
 	let input = document.querySelector('textarea');
-	let url = `ai_ask.js?chat=${chatId}&input=${encodeURIComponent(input.value)}`;
+	let url = `ai_ask.js?chat=${chat.id}&input=${encodeURIComponent(input.value)}`;
 	ajax(url);
 	input.value = '';
 	fixTextarea(input);