From 7e4e374f621d9d1c37f37ff6555e013cdb3b03a0 Mon Sep 17 00:00:00 2001
From: abc <98614666+xtekky@users.noreply.github.com>
Date: Fri, 6 Oct 2023 19:52:17 +0100
Subject: ~ | new g4f GUI
---
g4f/gui/client/js/chat.v2.js | 620 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 620 insertions(+)
create mode 100644 g4f/gui/client/js/chat.v2.js
(limited to 'g4f/gui/client/js/chat.v2.js')
diff --git a/g4f/gui/client/js/chat.v2.js b/g4f/gui/client/js/chat.v2.js
new file mode 100644
index 00000000..df827030
--- /dev/null
+++ b/g4f/gui/client/js/chat.v2.js
@@ -0,0 +1,620 @@
+const query = (obj) => Object.keys(obj).map((k) => encodeURIComponent(k) + "=" + encodeURIComponent(obj[k])).join("&");
+const colorThemes = document.querySelectorAll('[name="theme"]');
+const markdown = window.markdownit();
+const message_box = document.getElementById(`messages`);
+const message_input = document.getElementById(`message-input`);
+const box_conversations = document.querySelector(`.top`);
+const spinner = box_conversations.querySelector(".spinner");
+const stop_generating = document.querySelector(`.stop_generating`);
+const send_button = document.querySelector(`#send-button`);
+let prompt_lock = false;
+
+hljs.addPlugin(new CopyButtonPlugin());
+
+const format = (text) => {
+ return text.replace(/(?:\r\n|\r|\n)/g, "
");
+};
+
+message_input.addEventListener("blur", () => {
+ window.scrollTo(0, 0);
+});
+
+message_input.addEventListener("focus", () => {
+ document.documentElement.scrollTop = document.documentElement.scrollHeight;
+});
+
+const delete_conversations = async () => {
+ localStorage.clear();
+ await new_conversation();
+};
+
+const handle_ask = async () => {
+ message_input.style.height = `80px`;
+ message_input.focus();
+
+ window.scrollTo(0, 0);
+ let message = message_input.value;
+
+ if (message.length > 0) {
+ message_input.value = ``;
+ await ask_gpt(message);
+ }
+};
+
+const remove_cancel_button = async () => {
+ stop_generating.classList.add(`stop_generating-hiding`);
+
+ setTimeout(() => {
+ stop_generating.classList.remove(`stop_generating-hiding`);
+ stop_generating.classList.add(`stop_generating-hidden`);
+ }, 300);
+};
+
+const ask_gpt = async (message) => {
+ try {
+ message_input.value = ``;
+ message_input.innerHTML = ``;
+ message_input.innerText = ``;
+
+ add_conversation(window.conversation_id, message);
+ window.scrollTo(0, 0);
+ window.controller = new AbortController();
+
+ jailbreak = document.getElementById("jailbreak");
+ model = document.getElementById("model");
+ prompt_lock = true;
+ window.text = ``;
+ window.token = message_id();
+
+ stop_generating.classList.remove(`stop_generating-hidden`);
+
+ message_box.innerHTML += `
+