feat(startseite): Giorgio entfernt, Belegschaft auf die fünf Agenten
Auf ausdrücklichen Wunsch: Giorgio entfällt vollständig. Das weicht bewusst von §6 des Auftrags ab, der ihn als Personalverwalter und Vorgesetzten vorsah — festgehalten, damit die Abweichung später nachvollziehbar bleibt. Entfernt: Rollendefinition `AGENT_SUPERVISOR`, sein gezeichnetes Porträt, sein Eintrag in der Auslastung und in der Belegschaftsansicht sowie die Erwähnung in der Produkttour. Die Personalverwaltung bleibt unverändert über den Menüpunkt «Meine Agenten» erreichbar — sie brauchte nie eine eigene Person am Bildschirm. Mit Giorgio entfällt auch die einzige Kennzahl, die aus den Freigabevorgängen kam; `computeAgentWorkload` braucht `agentWorkItems` deshalb nicht mehr. Ordner und Komponenten heissen jetzt nach ihrem Inhalt: `components/staff/`, `AgentStaffOverview`, `StaffBackdrop`. «Meetingraum» war seit dem Umbau auf Personenkarten irreführend, und ein falscher Name kostet den Nächsten mehr Zeit als die Umbenennung. Fünf statt sechs Karten heisst Flexlayout statt Dreierraster: drei oben, zwei mittig darunter, gleich breit und ohne Lücke. Die Karten geben ihre Höhe nicht mehr selbst vor — mit `height: 100%` beanspruchte jede die volle Fläche und die zweite Zeile fiel aus dem sichtbaren Bereich. Geprüft: 433 Tests, Typecheck, Build, ESLint, Token-Schwelle (889/925). Browser 1280–1920 px und Tablet: fünf Karten vollständig sichtbar, keine Überlappung, Titel und «Filter & Übersicht» beim Einstieg sichtbar, alle fünf Klicks auf der richtigen Subpage, «Meine Agenten» weiterhin erreichbar, keine Konsolenfehler, keine 404. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,12 +4,11 @@ import { useVisitAssignments } from './useVisitAssignments'
|
||||
import { useExposeLeads } from './useExposeLeads'
|
||||
import { useUnifiedLeads } from './useUnifiedLeads'
|
||||
import { useProperties } from './useProperties'
|
||||
import { useAgentWorkItems } from './useAgentWorkItems'
|
||||
import { computeAgentWorkload } from '../services/agentWorkloadService'
|
||||
import type { AgentWorkload } from '../domain/agentWorkload'
|
||||
|
||||
/**
|
||||
* Aktuelle Auslastung aller sechs digitalen Mitarbeitenden (Runde 5).
|
||||
* Aktuelle Auslastung der fünf digitalen Mitarbeitenden (Runde 5).
|
||||
*
|
||||
* Der Hook sammelt nur die Bestände ein; was daraus wird, entscheidet
|
||||
* `agentWorkloadService` — Schwellen, Zeitfenster und Formulierungen sind
|
||||
@@ -22,17 +21,16 @@ export function useAgentWorkload(): { data: Record<string, AgentWorkload>; isLoa
|
||||
const { data: exposeLeads = [], isLoading: exposeLoading } = useExposeLeads()
|
||||
const { data: leads, isLoading: leadsLoading } = useUnifiedLeads()
|
||||
const { data: properties = [], isLoading: propertiesLoading } = useProperties()
|
||||
const { data: workItems = [], isLoading: workItemsLoading } = useAgentWorkItems()
|
||||
|
||||
const data = useMemo(
|
||||
() => computeAgentWorkload({ reminders, visits, exposeLeads, leads, properties, workItems }),
|
||||
[reminders, visits, exposeLeads, leads, properties, workItems],
|
||||
() => computeAgentWorkload({ reminders, visits, exposeLeads, leads, properties }),
|
||||
[reminders, visits, exposeLeads, leads, properties],
|
||||
)
|
||||
|
||||
return {
|
||||
data,
|
||||
isLoading:
|
||||
remindersLoading || visitsLoading || exposeLoading ||
|
||||
leadsLoading || propertiesLoading || workItemsLoading,
|
||||
leadsLoading || propertiesLoading,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user