DeepCodeGeniusWeb-vscode/media/inputContainer.js

78 lines
2.5 KiB
JavaScript
Raw Normal View History

2023-05-02 19:58:32 +08:00
const messageInput = document.getElementById('message-input');
const inputContainer = document.getElementById('input-container');
const defaultHeight = 16;
function autoResizeTextarea() {
const lineCount = (messageInput.value.match(/\n/g) || []).length + 1;
messageInput.style.height = 'auto';
messageInput.style.height = (lineCount <= 1 ? defaultHeight : messageInput.scrollHeight) + 'px';
inputContainer.style.height = 'auto';
inputContainer.style.height = messageInput.style.height + 25;
}
messageInput.addEventListener('input', autoResizeTextarea);
autoResizeTextarea();
2023-05-02 19:58:32 +08:00
function initInputContainer() {
const messageInput = document.getElementById('message-input');
const sendButton = document.getElementById('send-button');
messageInput.addEventListener('keypress', function (e) {
if (e.key === 'Enter') {
if (e.ctrlKey) {
e.preventDefault();
const message = messageInput.value.trim();
if (message !== '') {
sendButton.click();
}
} else if (!e.shiftKey) {
e.preventDefault();
messageInput.setRangeText('\n', messageInput.selectionStart, messageInput.selectionEnd, 'end');
autoResizeTextarea();
2023-05-02 19:58:32 +08:00
}
}
});
sendButton.addEventListener('click', () => {
const message = messageInput.value;
if (message) {
// Add the user's message to the chat UI
addMessageToUI('user', message);
2023-05-02 19:58:32 +08:00
// Clear the input field
messageInput.value = '';
2023-05-02 19:58:32 +08:00
// Process and send the message to the extension
messageUtil.sendMessage({
command: 'sendMessage',
text: message
});
autoResizeTextarea();
2023-05-02 19:58:32 +08:00
}
});
messageUtil.registerHandler('file_select', (message) => {
addFileToMessageInput(message.filePath);
});
messageUtil.registerHandler('code_select', (message) => {
addCodeToMessageInput(message.codeBlock);
});
}
function addFileToMessageInput(filePath) {
const messageInput = document.getElementById('message-input');
const formattedPath = `[context|${filePath}] `;
messageInput.value = formattedPath + messageInput.value;
messageInput.focus();
}
function addCodeToMessageInput(codeBlock) {
const messageInput = document.getElementById('message-input');
messageInput.value += "\n" + codeBlock + "\n";
messageInput.focus();
}