// markets.jsx — Markets Home mobile (2 variants) + desktop // ╔══════════════════════════════════════════════════════════════╗ // ║ MARKETS A — Editorial / Magazine Layout ║ // ║ Top of crowd → hero stock card → top predictors leaderboard ║ // ╚══════════════════════════════════════════════════════════════╝ function MarketsA({ dark }) { const t = useTheme(dark); return (
{/* Top app bar */} {/* Screen title block */}
Sun, May 17
Markets
{/* Indices strip */}
{[ { name: 'DAX', val: '18,742', chg: '+0.42%', up: true }, { name: 'S&P 500', val: '5,478', chg: '−0.18%', up: false }, { name: 'NASDAQ', val: '17,224', chg: '−0.31%', up: false }, { name: 'BTC', val: '€68,420', chg: '+1.84%', up: true }, ].map(i => (
{i.name}
{i.val}
{i.chg}
))}
{/* Hero — Top of crowd today */}
Top of the crowd · This week
Amazon.com
AMZN · NASDAQ
€227.35
−1.50%
{/* Spark with prediction dots — the dots ARE the sentiment indicator */}
i % 2 === 0)} markerSize={3.5} upColor={t.up} downColor={t.down} bgColor={t.surface} />
232 Einschätzungen
{/* Top Buy this week */} {[ { sym: 'NVDA', name: 'NVIDIA', price: 193.88, chg: -0.4, tp: 211.48, votes: 178, dir: 'up' }, { sym: 'GOOGL', name: 'Alphabet', price: 341.45, chg: 1.2, tp: 339.04, votes: 142, dir: 'down' }, { sym: 'AMZN', name: 'Amazon', price: 227.35, chg: -1.5, tp: 253.48, votes: 214, dir: 'up' }, { sym: 'AAPL', name: 'Apple', price: 198.20, chg: 0.6, tp: 215.00, votes: 156, dir: 'up' }, ].map(s => ( ))} {/* Top Sell this week */} {[ { sym: 'PFI', name: 'Prudential', price: 87.70, chg: -2.1, tp: 79.37, votes: 41, dir: 'down' }, { sym: 'WHR', name: 'Whirlpool', price: 34.42, chg: -1.4, tp: 28.04, votes: 38, dir: 'down' }, { sym: 'SCCO', name: 'Southern Cu', price: 152.10, chg: -0.8, tp: 129.26, votes: 35, dir: 'down' }, ].map(s => ( ))} {/* Top predictors leaderboard */}
{[ { rank: 1, name: 'PapaSmurf', acc: 78.2, badge: '🏆', streak: 7 }, { rank: 2, name: 'djuddi888', acc: 72.2, streak: 5 }, { rank: 3, name: 'fenjal', acc: 71.6, streak: 4 }, { rank: 4, name: 'Melius', acc: 71.4, streak: 3 }, ].map((u, i) => (
0 ? `0.5px solid ${t.border}` : 'none' }}> {u.rank}
{u.name} {u.badge && {u.badge}}
{Icon.flame(t.down, 10)} {u.streak} streak
{u.acc}%
Accuracy
))}
{/* Banner */}
Many tell you what to buy.
We measure who is right.
Sharewise tracks 2.4M predictions since 2007.
Join Club
); } function SectionHeader({ t, label, cta }) { return (
{label} {cta && {cta} →}
); } function HorizScroll({ children }) { return (
{children}
); } function PickCard({ t, stock, kind }) { const dayUp = stock.chg > 0; return (
{/* Just ticker + sym */}
{stock.sym}
{/* Price + chg */}
€{stock.price.toFixed(2)}
{dayUp ? '+' : ''}{stock.chg}%
{/* Upside bar + % */}
); } // ╔══════════════════════════════════════════════════════════════╗ // ║ MARKETS B — Dense pro layout (TradingView vibes) ║ // ╚══════════════════════════════════════════════════════════════╝ function MarketsB({ dark }) { const t = useTheme(dark); const stocks = [ { sym: 'AMZN', name: 'Amazon.com', price: 227.35, chg: -1.50, sent: 97, dir: 'buy', tp: 253.48 }, { sym: 'NVDA', name: 'NVIDIA', price: 193.88, chg: -0.42, sent: 89, dir: 'buy', tp: 211.48 }, { sym: 'GOOGL', name: 'Alphabet A', price: 341.45, chg: 1.21, sent: 84, dir: 'buy', tp: 339.04 }, { sym: 'AAPL', name: 'Apple', price: 198.20, chg: 0.58, sent: 76, dir: 'buy', tp: 215.00 }, { sym: 'MSFT', name: 'Microsoft', price: 422.10, chg: -0.32, sent: 91, dir: 'buy', tp: 460.00 }, { sym: 'GILD', name: 'Gilead', price: 78.45, chg: 0.84, sent: 68, dir: 'buy', tp: 92.00 }, { sym: 'PFI', name: 'Prudential', price: 87.70, chg: -2.10, sent: 18, dir: 'sell', tp: 79.37 }, { sym: 'WHR', name: 'Whirlpool', price: 34.42, chg: -1.40, sent: 22, dir: 'sell', tp: 28.04 }, ]; return (
Markets LIVE
{/* Segmented */}
{['For you', 'Top Buy', 'Top Sell', 'Trending', 'Earnings'].map((s, i) => ( {s} ))}
{/* Time filter */}
{['1D','1W','1M','3M','1Y','ALL'].map((p, i) => ( {p} ))}
Sort: Sentiment ↓
{/* Column header */}
Ticker Preis Change Potenzial
{/* Rows */} {stocks.map((s, i) => { const dayUp = s.chg > 0; return (
{s.sym}
€{s.price.toFixed(2)}
{dayUp ? '+' : ''}{s.chg}%
); })}
); } Object.assign(window, { MarketsA, MarketsB });