Skip to content

Commit cba33c7

Browse files
committed
Added loading animation
1 parent c6e14aa commit cba33c7

File tree

2 files changed

+40
-28
lines changed

2 files changed

+40
-28
lines changed

extension/popup.js

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,49 @@
11
console.log("📦 popup.js loaded");
22

33
document.getElementById("getHelp").addEventListener("click", async () => {
4-
chrome.tabs.query({ active: true, currentWindow: true }, async (tabs) => {
5-
const tab = tabs[0];
6-
const url = tab.url;
7-
const title = tab.title;
8-
9-
console.log("LeetCode URL:", url);
10-
console.log("Problem Title:", title);
11-
12-
const response = await fetch("http://127.0.0.1:8000/api/solve/", {
13-
method: "POST",
14-
headers: {
15-
"Content-Type": "application/json"
16-
},
17-
body: JSON.stringify({ title, url })
18-
});
4+
const output = document.getElementById("output");
5+
const loader = document.getElementById("loader");
6+
7+
//show loader
8+
loader.style.display = "block";
9+
output.innerHTML = "";
1910

20-
const data = await response.json();
21-
console.log("✅ Response from Django:", data);
11+
try {
12+
chrome.tabs.query({ active: true, currentWindow: true }, async (tabs) => {
13+
const tab = tabs[0];
14+
const url = tab.url;
15+
const title = tab.title;
2216

23-
const output = document.getElementById("output");
24-
output.innerHTML = "";
17+
console.log("LeetCode URL:", url);
18+
console.log("Problem Title:", title);
2519

26-
if (data.steps && Array.isArray(data.steps)) {
27-
data.steps.forEach((step) => {
28-
const div = document.createElement("div");
29-
div.innerHTML = marked.parse(step); // Using Marked package
30-
output.appendChild(div);
20+
const response = await fetch("http://127.0.0.1:8000/api/solve/", {
21+
method: "POST",
22+
headers: {
23+
"Content-Type": "application/json"
24+
},
25+
body: JSON.stringify({ title, url })
3126
});
32-
} else {
33-
output.innerHTML = "<p>No steps found.</p>";
34-
}
3527

36-
});
28+
const data = await response.json();
29+
console.log("✅ Response from Django:", data);
30+
31+
// hide loader
32+
loader.style.display = "none";
33+
34+
if (data.steps && Array.isArray(data.steps)) {
35+
data.steps.forEach((step) => {
36+
const div = document.createElement("div");
37+
div.innerHTML = marked.parse(step); // Render markdown
38+
output.appendChild(div);
39+
});
40+
} else {
41+
output.innerHTML = "<p>No steps found.</p>";
42+
}
43+
});
44+
} catch (err) {
45+
loader.style.display = "none";
46+
output.innerHTML = "<p style='color: red;'>Error fetching data. Try again?</p>";
47+
console.error("❌ Error:", err);
48+
}
3749
});
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)