refactor: move media to assets folder
This commit is contained in:
parent
31161a7880
commit
3288c82d5e
@ -110,7 +110,7 @@ function initInputContainer() {
|
||||
// 阻止<a>标签的默认行为(例如导航到链接)
|
||||
event.preventDefault();
|
||||
// 在此处定义点击处理逻辑
|
||||
messageUtil.sendMessage({command: 'addContext', selected: item.href})
|
||||
messageUtil.sendMessage({ command: 'addContext', selected: item.href })
|
||||
// 隐藏弹出菜单
|
||||
popupContextMenu.style.display = 'none';
|
||||
});
|
||||
@ -147,8 +147,8 @@ function initInputContainer() {
|
||||
});
|
||||
});
|
||||
|
||||
messageUtil.sendMessage({command: 'regContextList'});
|
||||
messageUtil.sendMessage({command: 'regCommandList'});
|
||||
messageUtil.sendMessage({ command: 'regContextList' });
|
||||
messageUtil.sendMessage({ command: 'regCommandList' });
|
||||
}
|
||||
|
||||
function addFileToMessageInput(filePath) {
|
||||
|
@ -1,51 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Meta tags for responsiveness and charset -->
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<title>Chat Panel</title>
|
||||
|
||||
<!-- Font Awesome icons -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.0/css/all.min.css" />
|
||||
<link rel="stylesheet" href="<vscode-resource:/chatPanel.css>" />
|
||||
<script src="https://cdn.jsdelivr.net/npm/markdown-it/dist/markdown-it.min.js"></script>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/themes/prism.min.css" />
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/prism.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="chat-container">
|
||||
<div id="messages-container">
|
||||
<!-- Chat messages will be added here dynamically -->
|
||||
</div>
|
||||
<div id="input-resize-handle" class="input-resize-handle"></div>
|
||||
<div id="input-container">
|
||||
<textarea id="message-input" placeholder="Type your message..."></textarea>
|
||||
<button id="add-context-button">+</button><div id="popupContextMenu" class="popup-context-menu"></div><button id="add-command-button">Commands</button><div id="popupCommandMenu" class="popup-command-menu"></div><button id="send-button">Send</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="context-menu" id="context-menu">
|
||||
<div class="context-menu-item" id="menu-item-1">Insert Code</div>
|
||||
</div>
|
||||
|
||||
<!-- Load the chatPanel.js file -->
|
||||
<script src="<vscode-resource:/messageUtil.js>"></script>
|
||||
<script src="<vscode-resource:/codeBlock.js>"></script>
|
||||
<script src="<vscode-resource:/markdown.js>"></script>
|
||||
<script src="<vscode-resource:/contextMenu.js>"></script>
|
||||
<script src="<vscode-resource:/inputContainer.js>"></script>
|
||||
<script src="<vscode-resource:/messageContainer.js>"></script>
|
||||
<script src="<vscode-resource:/actionButton.js>"></script>
|
||||
<script src="<vscode-resource:/chatUI.js>"></script>
|
||||
<script src="<vscode-resource:/resizeInput.js>"></script>
|
||||
<script src="<vscode-resource:/clipboard.js>"></script>
|
||||
<script src="<vscode-resource:/main.js>"></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
Prism.highlightAll();
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -1,165 +0,0 @@
|
||||
|
||||
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();
|
||||
|
||||
function initInputContainer() {
|
||||
const messageInput = document.getElementById('message-input');
|
||||
const sendButton = document.getElementById('send-button');
|
||||
const addContextButton = document.getElementById('add-context-button');
|
||||
const addCommandButton = document.getElementById('add-command-button');
|
||||
const popupContextMenu = document.getElementById('popupContextMenu');
|
||||
const popupCommandMenu = document.getElementById('popupCommandMenu');
|
||||
|
||||
let contextList = [];
|
||||
let commandList = [];
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
sendButton.addEventListener('click', () => {
|
||||
const message = messageInput.value;
|
||||
if (message) {
|
||||
// Add the user's message to the chat UI
|
||||
addMessageToUI('user', message);
|
||||
|
||||
// Clear the input field
|
||||
messageInput.value = '';
|
||||
|
||||
// Process and send the message to the extension
|
||||
messageUtil.sendMessage({
|
||||
command: 'sendMessage',
|
||||
text: message
|
||||
});
|
||||
autoResizeTextarea();
|
||||
}
|
||||
});
|
||||
|
||||
addContextButton.addEventListener('click', (event) => {
|
||||
popupContextMenu.style.display = popupContextMenu.style.display === 'block' ? 'none' : 'block';
|
||||
// 设置弹出菜单的位置
|
||||
popupContextMenu.style.left = event.pageX + 'px';
|
||||
popupContextMenu.style.top = event.pageY + 'px';
|
||||
});
|
||||
|
||||
addCommandButton.addEventListener('click', (event) => {
|
||||
popupCommandMenu.style.display = popupCommandMenu.style.display === 'block' ? 'none' : 'block';
|
||||
// 设置弹出菜单的位置
|
||||
popupCommandMenu.style.left = event.pageX + 'px';
|
||||
popupCommandMenu.style.top = event.pageY + 'px';
|
||||
});
|
||||
|
||||
messageUtil.registerHandler('file_select', (message) => {
|
||||
addFileToMessageInput(message.filePath);
|
||||
});
|
||||
|
||||
messageUtil.registerHandler('code_select', (message) => {
|
||||
addCodeToMessageInput(message.codeBlock);
|
||||
});
|
||||
|
||||
messageUtil.registerHandler('appendContext', (message) => {
|
||||
addCodeToMessageInput(message.context);
|
||||
});
|
||||
|
||||
messageUtil.registerHandler('regContextList', (message) => {
|
||||
contextList = message.result;
|
||||
|
||||
const menuItems = [];
|
||||
for (let i = 0; i < contextList.length; i++) {
|
||||
menuItems.push({
|
||||
text: contextList[i].name,
|
||||
href: contextList[i].name
|
||||
});
|
||||
}
|
||||
|
||||
menuItems.forEach(item => {
|
||||
const menuItem = document.createElement('a');
|
||||
menuItem.textContent = 'add ' + item.text;
|
||||
menuItem.href = item.text;
|
||||
|
||||
popupContextMenu.appendChild(menuItem);
|
||||
|
||||
// 为每个菜单项添加点击事件监听器
|
||||
menuItem.addEventListener('click', (event) => {
|
||||
// 阻止<a>标签的默认行为(例如导航到链接)
|
||||
event.preventDefault();
|
||||
// 在此处定义点击处理逻辑
|
||||
messageUtil.sendMessage({command: 'addContext', selected: item.href})
|
||||
// 隐藏弹出菜单
|
||||
popupContextMenu.style.display = 'none';
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
messageUtil.registerHandler('regCommandList', (message) => {
|
||||
commandList = message.result;
|
||||
|
||||
const menuItems = [];
|
||||
for (let i = 0; i < commandList.length; i++) {
|
||||
menuItems.push({
|
||||
text: commandList[i].pattern,
|
||||
href: commandList[i].pattern
|
||||
});
|
||||
}
|
||||
|
||||
menuItems.forEach(item => {
|
||||
const menuItem = document.createElement('a');
|
||||
menuItem.textContent = item.text;
|
||||
menuItem.href = item.href;
|
||||
|
||||
popupCommandMenu.appendChild(menuItem);
|
||||
|
||||
// 为每个菜单项添加点击事件监听器
|
||||
menuItem.addEventListener('click', (event) => {
|
||||
// 阻止<a>标签的默认行为(例如导航到链接)
|
||||
event.preventDefault();
|
||||
// 在此处定义点击处理逻辑
|
||||
addCodeToMessageInput("/" + item.href);
|
||||
// 隐藏弹出菜单
|
||||
popupCommandMenu.style.display = 'none';
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
messageUtil.sendMessage({command: 'regContextList'});
|
||||
messageUtil.sendMessage({command: 'regCommandList'});
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user