- {[...departments.entries()].map(([dept, deptDesks]) => {
- const floor = floorForDept(dept);
- return (
-
-
- {floor.label}
-
-
- {deptDesks.map((desk) => (
-
- ))}
-
-
- );
- })}
+
+ {[...departments.entries()].map(([dept, deptDesks]) => (
+
+ ))}
);
}
-function DeskCell({
- desk,
- hovered,
- onHover,
-}: {
- desk: AgentDesk;
- hovered: boolean;
+function Room({ label, desks, hoveredId, onHover }: {
+ label: string;
+ desks: AgentDesk[];
+ hoveredId: string | null;
onHover: (id: string | null) => void;
}) {
- const ring = STATUS_RING[desk.status];
- const isWorking = desk.status === "active" || desk.status === "thinking";
+ return (
+
+
+ {label}
+
+
+ {desks.map((desk) => (
+
+ ))}
+
+
+ );
+}
+
+function Workstation({ desk, hovered, onHover }: { desk: AgentDesk; hovered: boolean; onHover: (id: string | null) => void }) {
+ const color = STATUS_COLOR[desk.status];
+ const glowing = desk.status === "active" || desk.status === "thinking";
return (
onHover(desk.agent.id)}
onMouseLeave={() => onHover(null)}
>
+
+
{desk.agent.name.split(" ")[0]}
- {hovered && desk.currentTask && (
+ {hovered && (
+
+ )}
+
+ );
+}
+
+function Tooltip({ name, role, task, status }: { name: string; role: string; task: string | null; status: PresenceStatus }) {
+ return (
+
+
{name}
+
{role}
+ {task && (
- {desk.currentTask}
+ {task}
)}