/* Santos OS — Alertas (notifications + AI order approvals) */
function NotifCard({ n, onToast }) {
const T = window.T;
const [expanded, setExpanded] = React.useState(false);
const [done, setDone] = React.useState(n.read ? null : undefined);
const isOrder = n.type==='order_proposal';
const prio = {critico:{label:'! Crítico', color:T.danger, bg:T.dangerLight}, moderado:{label:'! Moderado', color:T.warning, bg:T.warningLight}, informativo:{label:null}}[n.priority];
const leftBorder = prio.color || (n.read ? 'transparent' : T.primary);
const approve = () => { setDone(true); onToast(isOrder?'✓ Pedido enviado al CEDI · PO generada':'✦ Canje registrado · portal actualizado'); };
const reject = () => { setDone(false); onToast('✕ Rechazado'); };
return (
{!n.read &&
}
{n.icon}
{n.title}
{prio.label && {prio.label}}
{n.label}
{n.ts}
{n.body}
{isOrder && expanded && (
AI
Generado por Claude Haiku
Análisis de velocidad · inventario Odoo · histórico
Producto
Cob.
Conf.
Costo
{window.ORDER_ITEMS.map((it,i)=>{
const conf = it.conf>=85?T.success:it.conf>=70?T.warning:T.danger;
const ti = it.trend==='up'?'↑':it.trend==='down'?'↓':'→';
const tcol = it.trend==='up'?T.danger:it.trend==='down'?T.success:T.fg3;
return (
{ti}{it.nombre}
{it.motivo} · {it.qty} {it.unidad}
{it.cover}d
{it.conf}%
L.{it.costo.toLocaleString()}
);
})}
Total · 4 SKUs
L. 5,610
)}
{isOrder &&
setExpanded(!expanded)} style={{fontSize:12, fontWeight:500, color:T.info, marginTop:4, marginBottom:8, cursor:'pointer'}}>{expanded?'▲ Ocultar detalle':'▼ Ver propuesta de IA'}
}
{n.actionable && done===undefined && (
✕ Rechazar
✓ Aprobar
)}
{done!==undefined && done!==null && (
{done?'✓ Aprobado':'✕ Rechazado'}
)}
);
}
function Alertas({ onToast }) {
const T = window.T;
const [filter, setFilter] = React.useState('all');
const filtered = filter==='all' ? window.NOTIFS : window.NOTIFS.filter(n=>n.actionable);
return (
3 sin leer
{[['all','Todas'],['action','Requieren acción']].map(([k,l])=>(
))}
{filtered.map(n=>)}
);
}
window.Alertas = Alertas;