From 576733d7dac72ee956520242395e5efec79be08c Mon Sep 17 00:00:00 2001 From: Benjamin Sutter Date: Mon, 3 Aug 2026 18:23:03 +0200 Subject: [PATCH] =?UTF-8?q?feat(team):=20Portr=C3=A4ts=20der=20digitalen?= =?UTF-8?q?=20Mitarbeiter=20aus=20dem=20Konzept=20=C3=BCbernehmen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bisher zeigten die Avatare Initialen auf einer Tonfarbe. Ich hatte das bewusst so gebaut, weil erfundene Gesichter in einer Kundendemo irreführend wären — das Konzeptdokument «Agenten_Bewirtschaftung_v2.html» trifft diese Entscheidung jedoch bereits: dort hängt an jedem der 36 Agenten ein Porträt als eingebettetes JPEG. Die sieben Kernagenten sind daraus extrahiert. - src/assets/team/*.jpg — sieben Porträts, je rund 6 KB, Zuordnung über die Mailadresse aus dem Konzept, die exakt unseren Agenten-IDs entspricht - agentPhotos.ts hält die Zuordnung in der Darstellungsschicht. Ein Domain-Typ, der Binärdateien importiert, wäre an den Bundler gekoppelt und weder im Test noch später gegen ein echtes Backend sauber verwendbar. - Fehlt zu einer ID ein Bild, zeigt der Avatar weiterhin die Initialen; dasselbe greift, wenn das Laden fehlschlägt Der zugängliche Name hängt weiterhin an genau einem Element, nie an zweien: mit Porträt am erzeugten über `alt`, ohne Porträt am Container über role="img" und aria-label. vite-env.d.ts ergänzt — die Referenz auf vite/client fehlte, ohne sie kennt TypeScript die Modul-Deklarationen für Assets nicht. 415 Tests grün, Build grün, die sieben JPEGs werden korrekt als Assets emittiert. Co-Authored-By: Claude Opus 5 (1M context) --- src/assets/team/bruno.jpg | Bin 0 -> 5945 bytes src/assets/team/ferdi.jpg | Bin 0 -> 6399 bytes src/assets/team/lea.jpg | Bin 0 -> 5508 bytes src/assets/team/livia.jpg | Bin 0 -> 6047 bytes src/assets/team/nora.jpg | Bin 0 -> 6699 bytes src/assets/team/reto.jpg | Bin 0 -> 5589 bytes src/assets/team/sina.jpg | Bin 0 -> 6883 bytes src/components/team/AgentAvatar.tsx | 17 ++++++--- .../team/__tests__/AgentCard.test.tsx | 18 +++++++--- src/components/team/agentPhotos.ts | 33 ++++++++++++++++++ src/vite-env.d.ts | 5 +++ 11 files changed, 64 insertions(+), 9 deletions(-) create mode 100644 src/assets/team/bruno.jpg create mode 100644 src/assets/team/ferdi.jpg create mode 100644 src/assets/team/lea.jpg create mode 100644 src/assets/team/livia.jpg create mode 100644 src/assets/team/nora.jpg create mode 100644 src/assets/team/reto.jpg create mode 100644 src/assets/team/sina.jpg create mode 100644 src/components/team/agentPhotos.ts create mode 100644 src/vite-env.d.ts diff --git a/src/assets/team/bruno.jpg b/src/assets/team/bruno.jpg new file mode 100644 index 0000000000000000000000000000000000000000..36e878ceae7fc75beb756fc3c79fd31cb206c94c GIT binary patch literal 5945 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 CSy$8m literal 0 HcmV?d00001 diff --git a/src/assets/team/lea.jpg b/src/assets/team/lea.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c284da713469f1d53868cd4e69b619582134ad2 GIT binary patch literal 5508 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 literal 0 HcmV?d00001 diff --git a/src/assets/team/nora.jpg b/src/assets/team/nora.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50364138d406dd7b3ef2c34ac2ba996edbcb8270 GIT binary patch literal 6699 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 literal 0 HcmV?d00001 diff --git a/src/assets/team/sina.jpg b/src/assets/team/sina.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e9a2bf8fae38a77579542d12ac8cd52d61b57dc GIT binary patch literal 6883 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 Bf;9jD literal 0 HcmV?d00001 diff --git a/src/components/team/AgentAvatar.tsx b/src/components/team/AgentAvatar.tsx index fd1e62f..dd04d96 100644 --- a/src/components/team/AgentAvatar.tsx +++ b/src/components/team/AgentAvatar.tsx @@ -4,6 +4,7 @@ import { Check } from 'lucide-react' import type { TeamAgent } from '../../domain/teamAgent' import { AgentStatus } from '../../domain/teamAgent' import { AVATAR_TONE_COLOR } from './teamTokens' +import { AGENT_PHOTOS } from './agentPhotos' import { AGENT_STATUS_LABELS } from '../../lib/constants' import { DS_BG, DS_TEXT } from '../../lib/ds' @@ -39,15 +40,20 @@ export const AgentAvatar = memo(function AgentAvatar({ agent, size = 'medium', s const isActive = agent.status === AgentStatus.ACTIVE const statusLabel = AGENT_STATUS_LABELS[agent.status] ?? agent.status const badgePx = size === 'large' ? 20 : 14 + const photo = AGENT_PHOTOS[agent.id] + const label = `${agent.name}, ${agent.role}` return ( - {/* `alt` reicht MUI ausschliesslich an den img-Slot weiter, und ohne `src` - rendert Avatar gar kein — die Beschriftung landete damit nirgends - im DOM. Der zugängliche Name muss deshalb direkt auf das Element. */} + {/* Der zugängliche Name hängt an genau einem Element, nie an zweien: + mit Porträt trägt ihn das von MUI erzeugte über `alt`, ohne + Porträt der Container über role="img" und aria-label. `alt` allein + genügt nämlich nicht — ohne `src` rendert MUI gar kein , und der + Wert landet nirgends im DOM. */} + {/* Fällt das Bild aus, zeigt MUI wieder die Initialen statt eines Lochs. */} {initialsOf(agent.name)} diff --git a/src/components/team/__tests__/AgentCard.test.tsx b/src/components/team/__tests__/AgentCard.test.tsx index e410503..7d64d3c 100644 --- a/src/components/team/__tests__/AgentCard.test.tsx +++ b/src/components/team/__tests__/AgentCard.test.tsx @@ -139,9 +139,20 @@ describe('AgentCard', () => { expect(within(card).getByText(/Zuletzt aktiv|Noch nicht gelaufen/)).toBeInTheDocument() }) - it('rendert den Avatar mit den Initialen des Mitarbeiters', () => { + it('rendert das Porträt des Mitarbeiters', () => { renderWithProviders() + const portrait = screen.getByRole('img', { name: `${ferdi.name}, ${ferdi.role}` }) + expect(portrait).toHaveAttribute('src') + expect(portrait.getAttribute('src')).toBeTruthy() + }) + + it('fällt ohne hinterlegtes Porträt auf die Initialen zurück', () => { + // Ein Mitarbeiter, zu dem in `agentPhotos.ts` kein Bild liegt — so verhält + // sich die Karte, falls der Katalog später um jemanden ohne Foto wächst. + const ohneFoto = { ...ferdi, id: 'unbekannt' } + renderWithProviders() + const card = screen.getByRole('article') expect(within(card).getByText(ferdi.name.slice(0, 2).toUpperCase())).toBeInTheDocument() }) @@ -149,9 +160,8 @@ describe('AgentCard', () => { it('gibt dem Avatar einen zugänglichen Namen aus Name und Rolle', () => { renderWithProviders() - // `alt` allein genügt bei MUI nicht: ohne `src` rendert Avatar kein , - // und der Wert landet nirgends im DOM. Der Name muss deshalb über - // role="img" + aria-label direkt am Element hängen (§18). + // Der Name hängt an genau einem Element: mit Porträt am über `alt`, + // ohne Porträt am Container über role="img" + aria-label (§18). expect( screen.getByRole('img', { name: `${ferdi.name}, ${ferdi.role}` }), ).toBeInTheDocument() diff --git a/src/components/team/agentPhotos.ts b/src/components/team/agentPhotos.ts new file mode 100644 index 0000000..b022c73 --- /dev/null +++ b/src/components/team/agentPhotos.ts @@ -0,0 +1,33 @@ +/** + * Property On — Porträts der digitalen Mitarbeiter. + * + * Die Bilder stammen aus dem Konzeptdokument «Agenten_Bewirtschaftung_v2.html», + * wo sie als eingebettete JPEGs am jeweiligen Agenten hängen. Sie sind damit + * Teil der fachlichen Vorgabe, nicht eine gestalterische Zutat: das digitale + * Personalbüro zeigt Mitarbeiter mit Gesicht, nicht abstrakte Werkzeuge. + * + * Die Zuordnung liegt bewusst in der Darstellungsschicht und nicht in + * `domain/teamAgent.ts` oder den Mockdaten. Ein Domain-Typ, der Binärdateien + * importiert, wäre an den Bundler gekoppelt und liesse sich weder in einem Test + * noch später gegen ein echtes Backend sauber verwenden. + * + * Fehlt zu einer ID ein Bild, fällt `AgentAvatar` auf die Initialen zurück. + */ + +import bruno from '../../assets/team/bruno.jpg' +import ferdi from '../../assets/team/ferdi.jpg' +import lea from '../../assets/team/lea.jpg' +import livia from '../../assets/team/livia.jpg' +import nora from '../../assets/team/nora.jpg' +import reto from '../../assets/team/reto.jpg' +import sina from '../../assets/team/sina.jpg' + +export const AGENT_PHOTOS: Record = { + bruno, + ferdi, + lea, + livia, + nora, + reto, + sina, +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..88d9b17 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,5 @@ +/// + +// Ohne diese Referenz kennt TypeScript die von Vite bereitgestellten +// Modul-Deklarationen für Assets nicht — ein `import portrait from './x.jpg'` +// würde als Fehler gemeldet, obwohl der Bundler es korrekt auflöst.