Skip to content

Commit 85920a2

Browse files
authored
Now Forum AI works
1 parent 2173eb3 commit 85920a2

File tree

1 file changed

+58
-24
lines changed

1 file changed

+58
-24
lines changed

src/ai-test.html

Lines changed: 58 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -104,35 +104,69 @@ <h4 style="font-size: 18px; margin: 0; color: #c0c0ff;">🤖 Forum AI: ChatGPT A
104104
</style>
105105

106106
<script>
107-
document.getElementById("askButton").addEventListener("click", async function () {
108-
const query = document.getElementById("userQuery").value;
109-
if (query.trim() === "") {
110-
alert("Please ask a question!");
111-
return;
107+
// script.js
108+
document.addEventListener("DOMContentLoaded", () => {
109+
const floatingButton = document.getElementById("floatingButton");
110+
const widgetContainer = document.getElementById("widgetContainer");
111+
const closeWidgetButton = document.getElementById("closeWidgetButton");
112+
const askButton = document.getElementById("askButton");
113+
const userQuery = document.getElementById("userQuery");
114+
const responseBox = document.getElementById("responseBox");
115+
const responseContent = document.getElementById("responseContent");
116+
117+
// 1) Open the widget
118+
floatingButton.addEventListener("click", () => {
119+
widgetContainer.style.display = "block";
120+
userQuery.focus();
121+
});
122+
123+
// 2) Close the widget
124+
closeWidgetButton.addEventListener("click", () => {
125+
widgetContainer.style.display = "none";
126+
});
127+
128+
// 3) Submit query (and disable the button until done)
129+
askButton.addEventListener("click", async () => {
130+
const query = userQuery.value.trim();
131+
if (!query) {
132+
alert("Please ask a question!");
133+
return;
112134
}
113135

114-
document.getElementById("responseBox").style.display = "block";
115-
document.getElementById("responseContent").textContent = "Processing...";
136+
// disable & show loading state
137+
askButton.disabled = true;
138+
askButton.textContent = "Waiting for response…";
139+
responseBox.style.display = "block";
140+
responseContent.textContent = "Processing… 🤖";
116141

117142
try {
118-
const res = await fetch("https://api.pollinations.ai/", {
119-
method: "POST",
120-
headers: {
121-
"Content-Type": "application/json",
122-
},
123-
body: JSON.stringify({
124-
model: "openai-large", // or other available models if specified by Pollinations
125-
messages: [{ role: "user", content: query }],
126-
}),
127-
});
128-
129-
const data = await res.json();
130-
const answer = data.choices[0].message.content.trim();
131-
document.getElementById("responseContent").textContent = answer;
143+
const res = await fetch("https://api.pollinations.ai/", {
144+
method: "POST",
145+
headers: { "Content-Type": "application/json" },
146+
body: JSON.stringify({
147+
model: "openai-large",
148+
messages: [{ role: "user", content: query }]
149+
})
150+
});
151+
152+
if (!res.ok) throw new Error(`API returned ${res.status}`);
153+
const data = await res.json();
154+
const answer = data.choices?.[0]?.message?.content?.trim() || "No response.";
155+
responseContent.textContent = answer;
156+
132157
} catch (err) {
133-
console.error(err);
134-
document.getElementById("responseContent").textContent = "Oops, something went wrong!";
158+
console.error(err);
159+
responseContent.textContent = "Oops, something went wrong!";
160+
} finally {
161+
// re‑enable
162+
askButton.disabled = false;
163+
askButton.textContent = "Ask Forum AI";
135164
}
136-
});
165+
});
137166

167+
// 4) Allow Enter key to submit
168+
userQuery.addEventListener("keydown", e => {
169+
if (e.key === "Enter") askButton.click();
170+
});
171+
});
138172
</script>

0 commit comments

Comments
 (0)