38289-vm/assets/js/main.js
2026-02-08 14:03:50 +00:00

63 lines
2.3 KiB
JavaScript

document.addEventListener('DOMContentLoaded', () => {
console.log('MarketPulse initialized');
const refreshBtn = document.getElementById('refresh-signals');
if (refreshBtn) {
refreshBtn.addEventListener('click', () => {
refreshBtn.disabled = true;
refreshBtn.innerHTML = 'Analyzing...';
// Simulate API call
setTimeout(() => {
refreshBtn.disabled = false;
refreshBtn.innerHTML = 'Refresh AI Insights';
showToast('Success', 'Market data re-analyzed. 2 new signals found.');
}, 1500);
});
}
const signalItems = document.querySelectorAll('.signal-item');
signalItems.forEach(item => {
item.addEventListener('click', () => {
const asset = item.getAttribute('data-asset');
updateTradePlan(asset);
// Highlight selected
signalItems.forEach(i => i.classList.remove('active-signal'));
item.classList.add('active-signal');
});
});
function updateTradePlan(asset) {
const title = document.getElementById('plan-asset-title');
if (title) title.innerText = asset + ' AI Trade Plan';
// Randomize some values for the demo
const entry = (Math.random() * 1000).toFixed(2);
const sl = (entry * 0.95).toFixed(2);
const tp = (entry * 1.1).toFixed(2);
document.getElementById('plan-entry').innerText = entry;
document.getElementById('plan-sl').innerText = sl;
document.getElementById('plan-tp').innerText = tp;
}
function showToast(title, message) {
// Simple toast implementation or use a library
console.log(`${title}: ${message}`);
const toast = document.createElement('div');
toast.style.position = 'fixed';
toast.style.bottom = '20px';
toast.style.right = '20px';
toast.style.background = 'var(--bg-surface-light)';
toast.style.border = '1px solid var(--accent-blue)';
toast.style.color = 'white';
toast.style.padding = '10px 20px';
toast.style.borderRadius = '4px';
toast.style.zIndex = '1000';
toast.innerHTML = `<strong>${title}</strong>: ${message}`;
document.body.appendChild(toast);
setTimeout(() => toast.remove(), 3000);
}
});