newfake / static /script.js
lavanyanaidu's picture
Upload 5 files
ed925c4 verified
Raw
History Blame Contribute Delete
3.58 kB
document.addEventListener('DOMContentLoaded', () => {
const checkBtn = document.getElementById('check-btn');
const clearBtn = document.getElementById('clear-btn');
const contentInput = document.getElementById('content-input');
// UI Elements
const btnText = document.querySelector('.btn-text');
const btnLoader = document.getElementById('btn-loader');
const resultContainer = document.getElementById('result-container');
const statusIcon = document.getElementById('status-icon');
const resultLabel = document.getElementById('result-label');
const progressFill = document.getElementById('progress-fill');
const scoreText = document.getElementById('score-text');
const explanationText = document.getElementById('explanation-text');
checkBtn.addEventListener('click', async () => {
const text = contentInput.value.trim();
if (!text) {
alert("Please enter some text or a URL to analyze.");
return;
}
// Set Loading State
setLoading(true);
try {
const response = await fetch('/api/analyze', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ content: text })
});
const data = await response.json();
if (!response.ok) {
throw new Error(data.error || "Failed to analyze content");
}
displayResult(data);
} catch (error) {
alert(`Error: ${error.message}`);
// Reset UI slightly
resultContainer.classList.add('hidden');
} finally {
setLoading(false);
}
});
clearBtn.addEventListener('click', () => {
contentInput.value = '';
resultContainer.classList.add('hidden');
// Reset classes
resultContainer.className = 'result-card glass-panel hidden';
progressFill.style.width = '0%';
});
function setLoading(isLoading) {
if (isLoading) {
checkBtn.disabled = true;
btnText.classList.add('hidden');
btnLoader.classList.remove('hidden');
resultContainer.classList.add('hidden');
} else {
checkBtn.disabled = false;
btnText.classList.remove('hidden');
btnLoader.classList.add('hidden');
}
}
function displayResult(data) {
// Remove existing state classes
resultContainer.className = 'result-card glass-panel';
const result = data.result; // "Real", "Fake", or "Uncertain"
const score = data.confidence; // 0 - 100
const explanation = data.explanation;
// Apply new state class
resultContainer.classList.add(`state-${result.toLowerCase()}`);
// Update text
resultLabel.textContent = `${result} Content`;
scoreText.textContent = `${score}%`;
explanationText.textContent = explanation;
// Icons
if (result === 'Real') {
statusIcon.textContent = '✓';
} else if (result === 'Fake') {
statusIcon.textContent = '✕';
} else {
statusIcon.textContent = '?';
}
// Show container
resultContainer.classList.remove('hidden');
// Animate progress bar slightly after container shows
setTimeout(() => {
progressFill.style.width = `${score}%`;
}, 100);
}
});