// pro-kontra-card.jsx — Symmetric Pro/Kontra split card (sharewise USP).
// Two columns: Pro (left, green) vs Kontra (right, red). Each item has a count + label.
// Replaces the flat "Top arguments" list with something symmetrical and stronger.
function ProKontraCard({ t, ticker = 'AMZN', pros, kontras, totalRatings, onRate }) {
return (
{/* Header */}
Was spricht für & gegen {ticker}
aus {totalRatings} Bewertungen der Community
{Icon.users(t.textDim, 16)}
{/* Split body */}
{/* Pro column */}
{Icon.check('#fff', 12)}
Pro
{pros.reduce((s, p) => s + p.n, 0)}
{pros.map((p, i) => (
))}
{/* Kontra column */}
Kontra
{kontras.reduce((s, k) => s + k.n, 0)}
{kontras.map((k, i) => (
))}
{/* Footer CTA */}
++
Was meinst du zu {ticker}?
Bewerte mit ++ / + / ? / − / −−
Bewerten {Icon.chevR(t.accent, 14)}
);
}
// One row inside Pro or Kontra column
function ProKontraItem({ t, item, kind }) {
const c = kind === 'pro' ? t.up : t.down;
return (
);
}
// Sample data for AMZN
const PROKONTRA_AMZN = {
totalRatings: 232,
pros: [
{ label: 'Lohnende Investition > 10% / Jahr', n: 24, pct: 100 },
{ label: 'Marktführer oder Top 3', n: 11, pct: 46 },
{ label: 'Zukunftsfähiges Geschäftsmodell', n: 11, pct: 46 },
{ label: 'Starke Marke', n: 8, pct: 33 },
],
kontras: [
{ label: 'Niedrige Dividendenrendite erwartet', n: 4, pct: 100 },
{ label: 'Hoher Streubesitz', n: 3, pct: 75 },
{ label: 'Bewertung zu hoch', n: 2, pct: 50 },
{ label: 'Nachhaltigkeit wenig wichtig', n: 1, pct: 25 },
],
};
Object.assign(window, { ProKontraCard, ProKontraItem, PROKONTRA_AMZN });