63 lines
2.3 KiB
JavaScript
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);
|
|
}
|
|
});
|