-
Notifications
You must be signed in to change notification settings - Fork 1
/
session.js
53 lines (46 loc) · 1.92 KB
/
session.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
const vscode = require('vscode');
const utils = require('./utils');
function handleShowSession(panel, service) {
// Retrieve the session data and current index based on the service
const sessionData = service === "chatGpt" ? global.chatSessionGPT : global.chatSessionGemini;
const currentIndex = global.currentChatIndex[service];
// Define totalEntries based on the length of the session data
const totalEntries = sessionData.length;
// Build session text for the current index, or a placeholder if the session is empty
let sessionText = sessionData.length > 0 ? sessionData[currentIndex].content : "Session is empty.";
if (panel && panel.webview) {
let command = service === "chatGpt" ? 'updateChatGptOutput' : 'updateGeminiOutput';
const sessionHtml = utils.formatMarkdown(sessionText, false);
const navigationHtml = `
<div style="display: flex; justify-content: center;">
<button style="margin-right: 10px;" ${currentIndex === 0 ? 'disabled' : ''} onclick="navigateChat('prev')">< Previous</button>
<button ${currentIndex >= totalEntries - 1 ? 'disabled' : ''} onclick="navigateChat('next')">Next ></button>
</div>
`;
panel.webview.postMessage({
command: command,
htmlContent: `<div>${sessionHtml} ${navigationHtml}</div>`
});
}
}
function handleClearSession(panel, service) {
// Clear the chat session array
let command = service == "chatGpt" ? 'updateChatGptOutput' : 'updateGeminiOutput';
if (service == "chatGpt") {
global.chatSessionGPT = [];
} else if (service == "gemini") {
global.chatSessionGemini = [];
}
// Notify the webview that the session has been cleared
if (panel && panel.webview) {
panel.webview.postMessage({
command: command,
htmlContent: `<div>Session cleared.</div>`
});
}
vscode.window.showInformationMessage('Session cleared');
}
module.exports = {
handleShowSession,
handleClearSession
};