/* global React, ReactDOM, ChIcon, NavIcon, CHANNELS, TICKETS, QueueScreen, CaseScreen, EscalationScreen, KbScreen, McpScreen, LifecycleScreen, PendingScreen, ResolvedScreen, FlowScreen */ const { useState, useEffect } = React; const Sidebar = ({ route, setRoute, filterChannel, setFilterChannel }) => { const counts = {}; CHANNELS.forEach(ch => { counts[ch.id] = TICKETS.filter(t => t.channel === ch.id).length; }); const goQueueWithFilter = (chId) => { setFilterChannel(chId); setRoute("queue"); }; return ( ); }; const TopBar = ({ setRoute }) => (
S
SOF.IA
MCP CONSOLE · v1.4
setRoute("mcp")} style={{cursor:"pointer"}}> Pregúntale a SOF.IA o busca ticket, cliente, serie, NIT… ⌘K
ONLINE · 4 CANALES
AC
Alejandra Carrillo DISPATCHER · CANELLA
); const App = () => { const [route, setRoute] = useState("queue"); const [filterChannel, setFilterChannel] = useState(null); const [activeTicket, setActiveTicket] = useState("CNL-2841"); useEffect(() => { const hash = window.location.hash.replace("#", ""); if (["queue","case","escalation","kb","mcp","lifecycle","pending","resolved","flow"].includes(hash)) setRoute(hash); }, []); useEffect(() => { window.location.hash = route; }, [route]); const openTicket = (t) => { setActiveTicket(t.id); if (t.state === "escalated" || t.phase === "escalado") { setRoute("escalation"); } else { setRoute("case"); } }; return (
{route === "queue" && ( )} {route === "lifecycle" && ( )} {route === "case" && ( setRoute("queue")} goToEscalation={() => setRoute("escalation")} /> )} {route === "escalation" && ( setRoute("queue")} goToCase={() => setRoute("case")} /> )} {route === "kb" && } {route === "mcp" && } {route === "pending" && ( setRoute("escalation")} setRoute={setRoute} /> )} {route === "resolved" && ( )} {route === "flow" && ( )}
); }; ReactDOM.createRoot(document.getElementById("root")).render();