// Two more "product screenshot" surfaces for the Variant C hero rotator. // TransactionsTableMock — the streaming transactions list // BlocklistMock — the blocklist editor function TransactionsTableMock() { const base = [ { t: '11:42:08', id: 'pay_01K5Z0QXM3', client: 'inxy_main', amt: '4,820', ccy: 'USDT', score: 92, dec: 'BLOCK', tone: 'block', reason: 'IP blocklist · velocity +21%' }, { t: '11:42:07', id: 'pay_01K5Z0PN7C', client: 'inxy_main', amt: '180', ccy: 'USDT', score: 7, dec: 'APPROVE', tone: 'approve', reason: 'known IP · in hours' }, { t: '11:42:06', id: 'pay_01K5Z0P4BX', client: 'acme_eu', amt: '12,500', ccy: 'USDT', score: 64, dec: 'REVIEW', tone: 'review', reason: 'amount > 2× baseline' }, { t: '11:42:05', id: 'pay_01K5Z0NNF9', client: 'acme_eu', amt: '280', ccy: 'EUR', score: 4, dec: 'APPROVE', tone: 'approve', reason: 'whitelisted destination' }, { t: '11:42:04', id: 'pay_01K5Z0N2AA', client: 'lumen_labs', amt: '940', ccy: 'USDT', score: 88, dec: 'BLOCK', tone: 'block', reason: 'sanctioned country' }, { t: '11:42:03', id: 'pay_01K5Z0MDLR', client: 'inxy_main', amt: '72', ccy: 'USDT', score: 23, dec: 'APPROVE', tone: 'approve', reason: 'low risk' }, { t: '11:42:02', id: 'pay_01K5Z0LY17', client: 'nimbus_pay', amt: '26,800', ccy: 'USDT', score: 71, dec: 'REVIEW', tone: 'review', reason: 'amount > 2× baseline' }, { t: '11:42:01', id: 'pay_01K5Z0KC7E', client: 'inxy_main', amt: '650', ccy: 'USDT', score: 94, dec: 'BLOCK', tone: 'block', reason: 'IP blocklist' }, { t: '11:42:00', id: 'pay_01K5Z0K019', client: 'acme_eu', amt: '9,200', ccy: 'USDT', score: 58, dec: 'REVIEW', tone: 'review', reason: 'anonymizer IP' }, ]; const [rows, setRows] = React.useState(() => base.slice(0, 8).map((r, i) => ({ ...r, _k: i }))); const [seed, setSeed] = React.useState(8); React.useEffect(() => { const iv = setInterval(() => { setSeed(s => s + 1); const nxt = base[seed % base.length]; // shift times by 1s setRows(prev => [{ ...nxt, _k: seed + 1000, t: bumpTime(prev[0]?.t || '11:42:08') }, ...prev.slice(0, 7)]); }, 2100); return () => clearInterval(iv); }, [seed]); return (