Mercurial Hosting > lang
diff src/chat.js @ 4:b1adec083e44
chat work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 08 Jul 2025 22:15:41 -0600 |
parents | |
children | a970b7a01a74 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/chat.js Tue Jul 08 22:15:41 2025 -0600 @@ -0,0 +1,56 @@ +'use strict'; + +function openRenameChat(name) { + let dialog = document.querySelector('dialog[rename]'); + dialog.querySelector('input[name=name]').value = 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 deleteChat() { + let dialog = document.querySelector('dialog[delete]'); + dialog.showModal(); +} + +function doDeleteChat(el) { + closeModal(el); + ajax(`delete_chat.js?chat=${chatId}`); +} + +function showWaitingAiIcon() { + document.querySelector('[waiting-ai-icon]').style.display = 'block'; +} + +const isMobile = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; + +function textareaKey(event) { + if( event.keyCode===13 && !event.shiftKey && !event.ctrlKey && !isMobile ) { + event.preventDefault(); + askAi(); + } +} + +function fixTextarea(event) { + let textarea = event.target; + textarea.style.height = 'initial'; + textarea.style.height = (textarea.scrollHeight+2) + 'px'; + textarea.scrollIntoViewIfNeeded(false); +} + +function askAi() { + let input = document.querySelector('textarea'); + let url = `ai_ask.js?key=${chatId}&input=${encodeURIComponent(input.value)}`; + ajax(url); + input.value = ''; + showWaitingAiIcon(); +}