UntilDot commited on
Commit
7dfd62b
Β·
verified Β·
1 Parent(s): a826bc4

Update static/script.js

Browse files
Files changed (1) hide show
  1. static/script.js +22 -5
static/script.js CHANGED
@@ -13,7 +13,7 @@ const MODEL_LIST = [
13
  { id: "deepseek/deepseek-r1:free", name: "DeepSeek R1" }
14
  ];
15
 
16
- // === Populate Custom Dropdowns ===
17
  function createDropdown(dropdownId) {
18
  const dropdown = document.getElementById(dropdownId);
19
  const selected = dropdown.querySelector(".selected");
@@ -39,7 +39,6 @@ function createDropdown(dropdownId) {
39
  options.classList.toggle("hidden");
40
  });
41
 
42
- // Close dropdowns if clicking outside
43
  document.addEventListener("click", () => {
44
  options.classList.add("hidden");
45
  });
@@ -48,6 +47,7 @@ function createDropdown(dropdownId) {
48
  // === Theme Toggle ===
49
  const themeToggle = document.getElementById("themeToggle");
50
  const toggleConfig = document.getElementById("toggleConfig");
 
51
  const configPanel = document.getElementById("configPanel");
52
  const html = document.documentElement;
53
 
@@ -55,12 +55,19 @@ function setInitialTheme() {
55
  const savedTheme = localStorage.getItem("theme");
56
  if (savedTheme === "dark") {
57
  html.classList.add("dark");
 
58
  } else if (savedTheme === "light") {
59
  html.classList.remove("dark");
 
60
  } else {
61
  const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
62
- if (prefersDark) html.classList.add("dark");
63
- else html.classList.remove("dark");
 
 
 
 
 
64
  }
65
  }
66
 
@@ -69,21 +76,29 @@ setInitialTheme();
69
  themeToggle.addEventListener("click", () => {
70
  const isDark = html.classList.toggle("dark");
71
  localStorage.setItem("theme", isDark ? "dark" : "light");
 
72
  });
73
 
74
  toggleConfig.addEventListener("click", () => {
75
  configPanel.classList.toggle("hidden");
76
  });
77
 
 
 
 
 
78
  // === Chat Handling ===
79
  const chatForm = document.getElementById("chatForm");
80
  const userInput = document.getElementById("userInput");
81
  const chatContainer = document.getElementById("chatContainer");
82
 
 
83
  createDropdown("modelA");
84
  createDropdown("modelB");
85
  createDropdown("modelC");
 
86
 
 
87
  function appendMessage(role, text) {
88
  const div = document.createElement("div");
89
  div.className = `p-3 rounded shadow max-w-2xl ${role === "user" ? "bg-blue text-fg0 self-end" : "bg-green text-fg0 self-start"}`;
@@ -92,6 +107,7 @@ function appendMessage(role, text) {
92
  chatContainer.scrollTop = chatContainer.scrollHeight;
93
  }
94
 
 
95
  chatForm.addEventListener("submit", async (e) => {
96
  e.preventDefault();
97
  const prompt = userInput.value.trim();
@@ -107,7 +123,8 @@ chatForm.addEventListener("submit", async (e) => {
107
  "LLM-A": document.getElementById("modelA").dataset.value,
108
  "LLM-B": document.getElementById("modelB").dataset.value,
109
  "LLM-C": document.getElementById("modelC").dataset.value,
110
- }
 
111
  };
112
 
113
  const response = await fetch("/chat", {
 
13
  { id: "deepseek/deepseek-r1:free", name: "DeepSeek R1" }
14
  ];
15
 
16
+ // === Create Custom Dropdowns ===
17
  function createDropdown(dropdownId) {
18
  const dropdown = document.getElementById(dropdownId);
19
  const selected = dropdown.querySelector(".selected");
 
39
  options.classList.toggle("hidden");
40
  });
41
 
 
42
  document.addEventListener("click", () => {
43
  options.classList.add("hidden");
44
  });
 
47
  // === Theme Toggle ===
48
  const themeToggle = document.getElementById("themeToggle");
49
  const toggleConfig = document.getElementById("toggleConfig");
50
+ const docsButton = document.getElementById("docsButton");
51
  const configPanel = document.getElementById("configPanel");
52
  const html = document.documentElement;
53
 
 
55
  const savedTheme = localStorage.getItem("theme");
56
  if (savedTheme === "dark") {
57
  html.classList.add("dark");
58
+ themeToggle.textContent = "πŸŒ™";
59
  } else if (savedTheme === "light") {
60
  html.classList.remove("dark");
61
+ themeToggle.textContent = "β˜€οΈ";
62
  } else {
63
  const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
64
+ if (prefersDark) {
65
+ html.classList.add("dark");
66
+ themeToggle.textContent = "πŸŒ™";
67
+ } else {
68
+ html.classList.remove("dark");
69
+ themeToggle.textContent = "β˜€οΈ";
70
+ }
71
  }
72
  }
73
 
 
76
  themeToggle.addEventListener("click", () => {
77
  const isDark = html.classList.toggle("dark");
78
  localStorage.setItem("theme", isDark ? "dark" : "light");
79
+ themeToggle.textContent = isDark ? "πŸŒ™" : "β˜€οΈ";
80
  });
81
 
82
  toggleConfig.addEventListener("click", () => {
83
  configPanel.classList.toggle("hidden");
84
  });
85
 
86
+ docsButton.addEventListener("click", () => {
87
+ window.location.href = "/docs";
88
+ });
89
+
90
  // === Chat Handling ===
91
  const chatForm = document.getElementById("chatForm");
92
  const userInput = document.getElementById("userInput");
93
  const chatContainer = document.getElementById("chatContainer");
94
 
95
+ // Create all dropdowns
96
  createDropdown("modelA");
97
  createDropdown("modelB");
98
  createDropdown("modelC");
99
+ createDropdown("aggregator");
100
 
101
+ // Append Message Function
102
  function appendMessage(role, text) {
103
  const div = document.createElement("div");
104
  div.className = `p-3 rounded shadow max-w-2xl ${role === "user" ? "bg-blue text-fg0 self-end" : "bg-green text-fg0 self-start"}`;
 
107
  chatContainer.scrollTop = chatContainer.scrollHeight;
108
  }
109
 
110
+ // Form Submit Event
111
  chatForm.addEventListener("submit", async (e) => {
112
  e.preventDefault();
113
  const prompt = userInput.value.trim();
 
123
  "LLM-A": document.getElementById("modelA").dataset.value,
124
  "LLM-B": document.getElementById("modelB").dataset.value,
125
  "LLM-C": document.getElementById("modelC").dataset.value,
126
+ },
127
+ aggregator: document.getElementById("aggregator").dataset.value,
128
  };
129
 
130
  const response = await fetch("/chat", {