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) {
|
2023-05-03 22:36:59 +08:00
|
|
|
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');
|
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-03 22:36:59 +08:00
|
|
|
|
2023-05-02 19:58:32 +08:00
|
|
|
// Clear the input field
|
|
|
|
messageInput.value = '';
|
2023-05-03 22:36:59 +08:00
|
|
|
|
2023-05-02 19:58:32 +08:00
|
|
|
// Process and send the message to the extension
|
|
|
|
messageUtil.sendMessage({
|
|
|
|
command: 'sendMessage',
|
|
|
|
text: message
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
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();
|
|
|
|
}
|